BigQuery admite las siguientes funciones DATETIME
.
De forma automática, todos los resultados adquieren formato según el estándar ISO 8601, que separa la fecha y hora con una T
.
CURRENT_DATETIME
CURRENT_DATETIME([timezone])
Descripción
Muestra la hora actual como un objeto DATETIME
. Los paréntesis son opcionales cuando
se los llama sin argumentos.
Esta función admite un parámetro timezone
opcional.
Consulta las Definiciones de la zona horaria para obtener información sobre cómo especificar una zona horaria.
Tipo de datos mostrados
DATETIME
Ejemplo
SELECT CURRENT_DATETIME() as now;
+----------------------------+
| now |
+----------------------------+
| 2016-05-19T10:38:47.046465 |
+----------------------------+
Cuando una columna llamada current_datetime
está presente, el nombre de la columna y la
llamada a la función sin paréntesis son ambiguos. Para garantizar la llamada a función, agrega
paréntesis a fin de garantizar el nombre de la columna y califícala con su
variable de rango. Por ejemplo, la siguiente consulta seleccionará la función en la columna now
y la columna de la tabla en la columna current_datetime
.
WITH t AS (SELECT 'column value' AS `current_datetime`)
SELECT current_datetime() as now, t.current_datetime FROM t;
+----------------------------+------------------+
| now | current_datetime |
+----------------------------+------------------+
| 2016-05-19T10:38:47.046465 | column value |
+----------------------------+------------------+
DATETIME
1. DATETIME(year, month, day, hour, minute, second)
2. DATETIME(date_expression[, time_expression])
3. DATETIME(timestamp_expression [, timezone])
Descripción
- Construye un objeto
DATETIME
con valores INT64 que representan el año, el mes, el día, la hora, el minuto y el segundo. - Construye un objeto
DATETIME
con un objeto DATE y un objeto TIME opcional. - Construye un objeto
DATETIME
con un objeto TIMESTAMP. Admite un parámetro opcional para especificar una zona horaria. Si no se especifica una zona horaria, se usa la predeterminada, UTC.
Tipo de datos mostrados
DATETIME
Ejemplo
SELECT
DATETIME(2008, 12, 25, 05, 30, 00) as datetime_ymdhms,
DATETIME(TIMESTAMP "2008-12-25 05:30:00+00", "America/Los_Angeles") as datetime_tstz;
+---------------------+---------------------+
| datetime_ymdhms | datetime_tstz |
+---------------------+---------------------+
| 2008-12-25T05:30:00 | 2008-12-24T21:30:00 |
+---------------------+---------------------+
EXTRACT
EXTRACT(part FROM datetime_expression)
Descripción
Muestra un valor que corresponde a la part
especificada de una datetime_expression
proporcionada.
Los valores part
permitidos son los siguientes:
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
DAYOFWEEK
DAY
DAYOFYEAR
WEEK
: muestra el número de semana de la fecha en el rango [0, 53]. Las semanas comienzan con el domingo y las fechas anteriores al primer domingo del año están en la semana 0.WEEK(<WEEKDAY>)
: Muestra el número de la semana dedatetime_expression
en el rango [0, 53]. Las semanas comienzan enWEEKDAY
. Los valoresdatetime
anteriores al primerWEEKDAY
del año están en la semana 0. Los valores válidos paraWEEKDAY
sonSUNDAY
,MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
ySATURDAY
.ISOWEEK
: muestra el número de semana ISO 8601 dedatetime_expression
. Los valoresISOWEEK
comienzan el lunes. Los valores de muestra están en el rango [1, 53]. El primer valorISOWEEK
de cada año ISO comienza el lunes anterior al primer jueves del año del calendario gregoriano.MONTH
QUARTER
YEAR
ISOYEAR
: muestra el año de numeración de la semana ISO 8601, que es el año calendario gregoriano que contiene el jueves de la semana a la que pertenecedate_expression
.DATE
TIME
Los valores mostrados truncan los períodos de tiempo de orden inferior. Por ejemplo, cuando se extraen segundos, EXTRACT
trunca los valores de milisegundos y microsegundos.
Tipo de datos mostrados
INT64
, excepto en los siguientes casos:
- Si
part
esDATE
, se muestra un objetoDATE
. - Si
part
esTIME
, se muestra un objetoTIME
.
Ejemplos
En el siguiente ejemplo, EXTRACT
muestra un valor que corresponde a la parte de tiempo HOUR
.
SELECT EXTRACT(HOUR FROM DATETIME(2008, 12, 25, 15, 30, 00)) as hour;
+------------------+
| hour |
+------------------+
| 15 |
+------------------+
En el siguiente ejemplo, EXTRACT
muestra valores correspondientes a diferentes partes de tiempo de una columna de fecha y hora.
WITH Datetimes AS (
SELECT DATETIME '2005-01-03 12:34:56' AS datetime UNION ALL
SELECT DATETIME '2007-12-31' UNION ALL
SELECT DATETIME '2009-01-01' UNION ALL
SELECT DATETIME '2009-12-31' UNION ALL
SELECT DATETIME '2017-01-02' UNION ALL
SELECT DATETIME '2017-05-26'
)
SELECT
datetime,
EXTRACT(ISOYEAR FROM datetime) AS isoyear,
EXTRACT(ISOWEEK FROM datetime) AS isoweek,
EXTRACT(YEAR FROM datetime) AS year,
EXTRACT(WEEK FROM datetime) AS week
FROM Datetimes
ORDER BY datetime;
+---------------------+---------+---------+------+------+
| datetime | isoyear | isoweek | year | week |
+---------------------+---------+---------+------+------+
| 2005-01-03T12:34:56 | 2005 | 1 | 2005 | 1 |
| 2007-12-31T00:00:00 | 2008 | 1 | 2007 | 52 |
| 2009-01-01T00:00:00 | 2009 | 1 | 2009 | 0 |
| 2009-12-31T00:00:00 | 2009 | 53 | 2009 | 52 |
| 2017-01-02T00:00:00 | 2017 | 1 | 2017 | 1 |
| 2017-05-26T00:00:00 | 2017 | 21 | 2017 | 21 |
+---------------------+---------+---------+------+------+
En el siguiente ejemplo, datetime_expression
es un domingo. EXTRACT
calcula la primera columna mediante las semanas que comienzan los días domingo y calcula la segunda columna con las semanas que comienzan los días lunes.
WITH table AS (SELECT DATETIME(TIMESTAMP "2017-11-05 00:00:00+00", "UTC") AS datetime)
SELECT
datetime,
EXTRACT(WEEK(SUNDAY) FROM datetime) AS week_sunday,
EXTRACT(WEEK(MONDAY) FROM datetime) AS week_monday
FROM table;
+---------------------+-------------+---------------+
| datetime | week_sunday | week_monday |
+---------------------+-------------+---------------+
| 2017-11-05T00:00:00 | 45 | 44 |
+---------------------+-------------+---------------+
DATETIME_ADD
DATETIME_ADD(datetime_expression, INTERVAL int64_expression part)
Descripción
Agrega unidades int64_expression
de part
al objeto DATETIME
.
DATETIME_ADD
admite los siguientes valores para part
:
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
DAY
WEEK
, que equivale a 7DAY
MONTH
QUARTER
YEAR
Se requiere un manejo especial para las partes MONTH, QUARTER y YEAR cuando la fecha es el último día del mes o está cerca de este. Si el mes del resultado tiene menos días que el día de DATETIME original, entonces el día del resultado será el último día del nuevo mes.
Tipo de datos mostrados
DATETIME
Ejemplo
SELECT
DATETIME "2008-12-25 15:30:00" as original_date,
DATETIME_ADD(DATETIME "2008-12-25 15:30:00", INTERVAL 10 MINUTE) as later;
+-----------------------------+------------------------+
| original_date | later |
+-----------------------------+------------------------+
| 2008-12-25T15:30:00 | 2008-12-25T15:40:00 |
+-----------------------------+------------------------+
DATETIME_SUB
DATETIME_SUB(datetime_expression, INTERVAL int64_expression part)
Descripción
Resta unidades int64_expression
de part
al DATETIME
.
DATETIME_SUB
admite los siguientes valores para part
:
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
DAY
WEEK
, que equivale a 7DAY
MONTH
QUARTER
YEAR
Se requiere un manejo especial para las partes MONTH
, QUARTER
y YEAR
cuando la fecha es el último día del mes (o está cerca de él). Si el mes del resultado tiene menos días que el día de DATETIME
original, el día del resultado será el último día del mes nuevo.
Tipo de datos mostrados
DATETIME
Ejemplo
SELECT
DATETIME "2008-12-25 15:30:00" as original_date,
DATETIME_SUB(DATETIME "2008-12-25 15:30:00", INTERVAL 10 MINUTE) as earlier;
+-----------------------------+------------------------+
| original_date | earlier |
+-----------------------------+------------------------+
| 2008-12-25T15:30:00 | 2008-12-25T15:20:00 |
+-----------------------------+------------------------+
DATETIME_DIFF
DATETIME_DIFF(datetime_expression_a, datetime_expression_b, part)
Descripción
Muestra la cantidad de intervalos part
completos especificados entre dos objetos DATETIME
(datetime_expression_a
y datetime_expression_b
). Si el primer DATETIME
es anterior al segundo, el resultado es negativo. Genera un error si el cálculo desborda el tipo de resultado, por ejemplo, si la diferencia en microsegundos entre los dos objetos DATETIME
desbordara un valor INT64
.
DATETIME_DIFF
admite los siguientes valores para part
:
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
DAY
WEEK
: esta parte de la fecha comienza el día domingo.WEEK(<WEEKDAY>)
: Esta parte de fecha comienza elWEEKDAY
. Los valores válidos paraWEEKDAY
sonSUNDAY
,MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
ySATURDAY
.ISOWEEK
: Usa los límites de la semana ISO 8601. Las semanas ISO comienzan el lunes.MONTH
QUARTER
YEAR
ISOYEAR
: Usa el límite del año de numeración de semana ISO 8601. El límite del año ISO es el lunes de la primera semana cuyo jueves pertenece al año calendario gregoriano correspondiente.
Tipo de datos mostrados
INT64
Ejemplo
SELECT
DATETIME "2010-07-07 10:20:00" as first_datetime,
DATETIME "2008-12-25 15:30:00" as second_datetime,
DATETIME_DIFF(DATETIME "2010-07-07 10:20:00",
DATETIME "2008-12-25 15:30:00", DAY) as difference;
+----------------------------+------------------------+------------------------+
| first_datetime | second_datetime | difference |
+----------------------------+------------------------+------------------------+
| 2010-07-07T10:20:00 | 2008-12-25T15:30:00 | 559 |
+----------------------------+------------------------+------------------------+
SELECT
DATETIME_DIFF(DATETIME '2017-10-15 00:00:00',
DATETIME '2017-10-14 00:00:00', DAY) as days_diff,
DATETIME_DIFF(DATETIME '2017-10-15 00:00:00',
DATETIME '2017-10-14 00:00:00', WEEK) as weeks_diff;
+-----------+------------+
| days_diff | weeks_diff |
+-----------+------------+
| 1 | 1 |
+-----------+------------+
En el ejemplo anterior, se muestra el resultado de DATETIME_DIFF
para dos DATETIME
con 24 horas de diferencia. DATETIME_DIFF
con la parte WEEK
muestra 1 porque DATETIME_DIFF
cuenta el número de límites de parte en este rango de DATETIME
. Cada WEEK
comienza el domingo, por lo que hay un límite de parte entre el sábado, 2017-10-14 00:00:00
, y el domingo, 2017-10-15 00:00:00
.
En el siguiente ejemplo, se muestra el resultado de DATETIME_DIFF
para dos fechas en años diferentes. DATETIME_DIFF
con la parte de fecha YEAR
muestra 3 porque cuenta el número de límites de año del calendario gregoriano entre los dos DATETIME
. DATETIME_DIFF
con la parte de fecha ISOYEAR
muestra 2 porque el segundo DATETIME
pertenece al año 2015 según la ISO. El primer jueves del año calendario 2015 fue 2015-01-01, por lo que el año ISO 2015 comienza el lunes anterior, 2014-12-29.
SELECT
DATETIME_DIFF('2017-12-30 00:00:00',
'2014-12-30 00:00:00', YEAR) AS year_diff,
DATETIME_DIFF('2017-12-30 00:00:00',
'2014-12-30 00:00:00', ISOYEAR) AS isoyear_diff;
+-----------+--------------+
| year_diff | isoyear_diff |
+-----------+--------------+
| 3 | 2 |
+-----------+--------------+
En el siguiente ejemplo, se muestra el resultado de DATETIME_DIFF
para dos días seguidos. La primera fecha es un lunes y la segunda es un domingo. DATETIME_DIFF
con la parte de fecha WEEK
muestra 0 porque esta parte de tiempo usa semanas que comienzan el domingo. DATETIME_DIFF
con la parte de fecha WEEK(MONDAY)
muestra 1. DATETIME_DIFF
con la parte de fecha ISOWEEK
también muestra 1 porque las semanas ISO comienzan el lunes.
SELECT
DATETIME_DIFF('2017-12-18', '2017-12-17', WEEK) AS week_diff,
DATETIME_DIFF('2017-12-18', '2017-12-17', WEEK(MONDAY)) AS week_weekday_diff,
DATETIME_DIFF('2017-12-18', '2017-12-17', ISOWEEK) AS isoweek_diff;
+-----------+-------------------+--------------+
| week_diff | week_weekday_diff | isoweek_diff |
+-----------+-------------------+--------------+
| 0 | 1 | 1 |
+-----------+-------------------+--------------+
DATETIME_TRUNC
DATETIME_TRUNC(datetime_expression, part)
Descripción
Trunca un objeto DATETIME
al nivel de detalle de part
.
DATETIME_TRUNC
admite los siguientes valores para part
:
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
DAY
WEEK
WEEK(<WEEKDAY>)
: Truncadatetime_expression
al límite de la semana anterior, en el que las semanas comienzan enWEEKDAY
. Los valores válidos paraWEEKDAY
sonSUNDAY
,MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
ySATURDAY
.ISOWEEK
: truncadatetime_expression
al límite de la semana ISO 8601 anterior. Los valoresISOWEEK
comienzan el lunes. El primerISOWEEK
de cada año ISO contiene el primer jueves del año calendario gregoriano correspondiente. Cualquier valordate_expression
anterior a esto se truncará al lunes anterior.MONTH
QUARTER
YEAR
ISOYEAR
: truncadatetime_expression
al límite de año de numeración de la semana ISO 8601. El límite del año ISO es el lunes de la primera semana cuyo jueves pertenece al año calendario gregoriano correspondiente.
Tipo de datos mostrados
DATETIME
Ejemplos
SELECT
DATETIME "2008-12-25 15:30:00" as original,
DATETIME_TRUNC(DATETIME "2008-12-25 15:30:00", DAY) as truncated;
+----------------------------+------------------------+
| original | truncated |
+----------------------------+------------------------+
| 2008-12-25T15:30:00 | 2008-12-25T00:00:00 |
+----------------------------+------------------------+
En el siguiente ejemplo, el DATETIME
original es un domingo. Debido a que part
es WEEK(MONDAY)
, DATE_TRUNC
muestra DATETIME
para el lunes anterior.
SELECT
datetime AS original,
DATETIME_TRUNC(datetime, WEEK(MONDAY)) AS truncated
FROM (SELECT DATETIME(TIMESTAMP "2017-11-05 00:00:00+00", "UTC") AS datetime);
+---------------------+---------------------+
| original | truncated |
+---------------------+---------------------+
| 2017-11-05T00:00:00 | 2017-10-30T00:00:00 |
+---------------------+---------------------+
En el siguiente ejemplo, el valor datetime_expression
original está en el año calendario gregoriano 2015. Sin embargo, DATETIME_TRUNC
con la parte de fecha ISOYEAR
trunca el valor datetime_expression
al comienzo del año ISO, no el año calendario gregoriano. El primer jueves del año calendario 2015 fue 2015-01-01, por lo que el año ISO 2015 comienza el lunes anterior, 2014-12-29.
Por lo tanto, el límite del año ISO que precede al valor datetime_expression
2015-06-15 00:00:00 es 2014-12-29.
SELECT
DATETIME_TRUNC('2015-06-15 00:00:00', ISOYEAR) AS isoyear_boundary,
EXTRACT(ISOYEAR FROM DATETIME '2015-06-15 00:00:00') AS isoyear_number;
+---------------------+----------------+
| isoyear_boundary | isoyear_number |
+---------------------+----------------+
| 2014-12-29T00:00:00 | 2015 |
+---------------------+----------------+
FORMAT_DATETIME
FORMAT_DATETIME(format_string, datetime_expression)
Descripción
Da formato a un objeto DATETIME
según el valor format_string
especificado. Consulta Elementos de formato admitidos para DATETIME a fin de obtener una lista de los elementos de formato que admite esta función.
Tipo de datos mostrados
STRING
Ejemplos
SELECT
FORMAT_DATETIME("%c", DATETIME "2008-12-25 15:30:00")
AS formatted;
+--------------------------+
| formatted |
+--------------------------+
| Thu Dec 25 15:30:00 2008 |
+--------------------------+
SELECT
FORMAT_DATETIME("%b-%d-%Y", DATETIME "2008-12-25 15:30:00")
AS formatted;
+-------------+
| formatted |
+-------------+
| Dec-25-2008 |
+-------------+
SELECT
FORMAT_DATETIME("%b %Y", DATETIME "2008-12-25 15:30:00")
AS formatted;
+-------------+
| formatted |
+-------------+
| Dec 2008 |
+-------------+
LAST_DAY
LAST_DAY(datetime_expression[, date_part])
Descripción
Muestra el último día de una expresión de fecha y hora que contiene la fecha. Por lo general, se usa para mostrar el último día del mes.
De forma opcional, puedes especificar la parte de fecha para la que se muestra el último día.
Si no se usa este parámetro, el valor predeterminado es MONTH
.
LAST_DAY
admite los siguientes valores para date_part
:
YEAR
QUARTER
MONTH
WEEK
, que equivale a 7DAY
.WEEK(<WEEKDAY>)
.<WEEKDAY>
representa el día de inicio de la semana. Los valores válidos sonSUNDAY
,MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
ySATURDAY
.ISOWEEK
. Usa los límites de la semana ISO 8601. Las semanas ISO comienzan el lunes.ISOYEAR
. Usa el límite de año de numeración de semanas ISO 8601. El límite del año ISO es el lunes de la primera semana cuyo jueves pertenece al año calendario gregoriano correspondiente.
Tipo de datos mostrados
DATE
Ejemplo
Ambas opciones muestran el último día del mes:
SELECT LAST_DAY(DATETIME '2008-11-25', MONTH) AS last_day
+------------+
| last_day |
+------------+
| 2008-11-30 |
+------------+
SELECT LAST_DAY(DATETIME '2008-11-25') AS last_day
+------------+
| last_day |
+------------+
| 2008-11-30 |
+------------+
Esto muestra el último día del año:
SELECT LAST_DAY(DATETIME '2008-11-25 15:30:00', YEAR) AS last_day
+------------+
| last_day |
+------------+
| 2008-12-31 |
+------------+
Esto muestra el último día de la semana de una semana que comienza el domingo:
SELECT LAST_DAY(DATETIME '2008-11-10 15:30:00', WEEK(SUNDAY)) AS last_day
+------------+
| last_day |
+------------+
| 2008-11-15 |
+------------+
Esto muestra el último día de la semana de una semana que comienza el lunes:
SELECT LAST_DAY(DATETIME '2008-11-10 15:30:00', WEEK(MONDAY)) AS last_day
+------------+
| last_day |
+------------+
| 2008-11-16 |
+------------+
PARSE_DATETIME
PARSE_DATETIME(format_string, datetime_string)
Descripción
Convierte una representación de string de una fecha y hora en un objeto DATETIME
.
format_string
contiene los elementos de formato que definen cómo se da formato a datetime_string
. Cada elemento en datetime_string
debe tener un elemento correspondiente en format_string
. La ubicación de cada elemento en format_string
debe coincidir con la ubicación de cada elemento en datetime_string
.
-- This works because elements on both sides match.
SELECT PARSE_DATETIME("%a %b %e %I:%M:%S %Y", "Thu Dec 25 07:30:00 2008")
-- This doesn't work because the year element is in different locations.
SELECT PARSE_DATETIME("%a %b %e %Y %I:%M:%S", "Thu Dec 25 07:30:00 2008")
-- This doesn't work because one of the year elements is missing.
SELECT PARSE_DATETIME("%a %b %e %I:%M:%S", "Thu Dec 25 07:30:00 2008")
-- This works because %c can find all matching elements in datetime_string.
SELECT PARSE_DATETIME("%c", "Thu Dec 25 07:30:00 2008")
La string de formato admite por completo la mayoría de los elementos de formato, excepto %Q
, %a
, %A
, %g
, %G
, %j
, %P
, %u
, %U
, %V
, %w
, y %W
.
PARSE_DATETIME
analiza la string
según las siguientes reglas:
- Campos sin especificar. Todo campo sin especificar se inicializa desde
1970-01-01 00:00:00.0
. Por ejemplo, si el año no se especifica, su valor predeterminado es1970
. - Nombres sin distinción entre mayúsculas y minúsculas. Los nombres, como
Monday
yFebruary
, no distinguen entre mayúsculas y minúsculas. - Espacio en blanco. Uno o más espacios en blanco consecutivos en la string de formato coinciden con cero o más espacios en blanco consecutivos en la string
DATETIME
. Los espacios en blanco iniciales y finales siempre se permiten en la stringDATETIME
, incluso si no están en la string de formato. - Precedencia del formato. Cuando dos o más elementos de formato tienen información superpuesta, por lo general, el último anula los anteriores, con algunas excepciones. Por ejemplo,
%F
y%Y
afectan el año, por lo que el elemento anterior anula al posterior. Consulta las descripciones de%s
,%C
y%y
en Elementos de formato admitidos para DATETIME.
Tipo de datos mostrados
DATETIME
Ejemplos
En los siguientes ejemplos, se analiza un literal de STRING
como DATETIME
.
SELECT PARSE_DATETIME('%Y-%m-%d %H:%M:%S', '1998-10-18 13:45:55') AS datetime;
+---------------------+
| datetime |
+---------------------+
| 1998-10-18T13:45:55 |
+---------------------+
SELECT PARSE_DATETIME('%m/%d/%Y %I:%M:%S %p', '8/30/2018 2:23:38 PM') AS datetime
+---------------------+
| datetime |
+---------------------+
| 2018-08-30T14:23:38 |
+---------------------+
En el siguiente ejemplo, se analiza un literal de STRING
que contiene una fecha en un formato de lenguaje natural como DATETIME
.
SELECT PARSE_DATETIME('%A, %B %e, %Y','Wednesday, December 19, 2018')
AS datetime;
+---------------------+
| datetime |
+---------------------+
| 2018-12-19T00:00:00 |
+---------------------+
Elementos de formato admitidos para DATETIME
A menos que se indique lo contrario, las funciones DATETIME
que usan strings de formato admiten los siguientes elementos:
Elemento de formato | Descripción | Ejemplo |
%A | El nombre completo del día de la semana | Miércoles |
%a | El nombre abreviado del día de la semana | Mie |
%B | El nombre completo del mes | Enero |
%b o %h | El nombre del mes abreviado | Ene |
%C | El siglo (un año dividido por 100 y truncado a un número entero) como un número decimal (00-99). | 20 |
%c | La representación de la fecha y la hora. | Miércoles 20 de ene 21:47:00 de 2021 |
%D | La fecha en el formato %m/%d/%y | 01/20/21 |
%d | El día del mes como número decimal (01-31) | 20 |
%e | El día del mes como número decimal (1-31); los dígitos individuales están precedidos por un espacio | 20 |
%F | La fecha en el formato %Y-%m-%d | 2021-01-20 |
%G | El año ISO 8601 con el siglo como número decimal. Cada año ISO comienza el lunes anterior al primer jueves del año calendario gregoriano. Ten en cuenta que %G y %Y pueden producir resultados diferentes cerca de los límites del año gregoriano, en donde el año gregoriano y el año ISO pueden divergir. | 2021 |
%g | El año ISO 8601 sin el siglo como número decimal (00-99). Cada año ISO comienza el lunes anterior al primer jueves del año calendario gregoriano. Ten en cuenta que %g y %y pueden producir resultados diferentes cerca de los límites del año gregoriano, en donde el año gregoriano y el año ISO pueden divergir. | 21 |
%H | La hora (formato de 24 horas) como número decimal (00-23). | 21 |
%I | La hora (formato de 12 horas) como número decimal (01-12). | 09 |
%j | El día del año como número decimal (001-366) | 020 |
%k | La hora (formato de 24 horas) como número decimal (0-23); los dígitos individuales están precedidos por un espacio. | 21 |
%l | La hora (formato de 12 horas) como número decimal (1-12); los dígitos individuales están precedidos por un espacio. | 9 |
%M | El minuto como número decimal (00-59). | |
%m | El mes como número decimal (01-12) | 01 |
%n | Un carácter de salto de línea. | |
%P | Ya sea a.m. o p.m. | p.m. |
%p | Ya sea A.M. o P.M. | PM |
%Q | El trimestre como un número decimal (1-4). | 1 |
%R | La hora en el formato %H:%M. | 21:47 |
%r | La hora en el formato de 12 horas con la notación A.M./P.M. | 09:47:00 p.m. |
%S | El segundo como número decimal (00-60) | 00 |
%s | El número de segundos desde 1970-01-01 00:00:00. Siempre anula todos los demás elementos de formato, sin importar dónde aparezca %s en la string. Si aparecen varios elementos %s, el último tiene prioridad. | 1611179220 |
%T | La hora en el formato %H:%M:%S. | 21:47:00 |
%t | Un tabulador | |
%U | El número de la semana del año (con el domingo como primer día de la semana) como número decimal (00-53) | 03 |
%u | El día de la semana (lunes como primer día de la semana) como número decimal (1-7) | 3 |
%V | El número de semana ISO 8601 del año (el lunes como el primer día de la semana) como un número decimal (01-53). Si la semana que contiene el 1 de enero tiene cuatro o más días en el año nuevo, entonces es la semana 1; de lo contrario, es la semana 53 del año anterior, y la próxima semana es la semana 1. | 03 |
%W | El número de la semana del año (con el lunes como primer día de la semana) como número decimal (00-53) | 03 |
%w | El día de la semana (domingo como primer día de la semana) como número decimal (0-6) | 3 |
%X | La representación de la hora en formato HH:MM:SS | 21:47:00 |
%x | La representación de la fecha en formato MM/DD/YY | 01/20/21 |
%Y | El año con siglo como número decimal | 2021 |
%y | El año sin siglo como número decimal (00-99), con un cero inicial opcional. Se puede combinar con %C. Si no se especifica %C, los años 00-68 son los años 2000, mientras que los años 69-99 son los 1900. | 21 |
%% | Un solo carácter % | % |
%E#S | Segundos con # dígitos de precisión fraccional. | 00.000 |
%E*S | Segundos con precisión fraccional completa (un literal “*”). | 00 |
%E4Y | Los años de cuatro caracteres (0001 … 9999). Ten en cuenta que %Y produce tantos caracteres como sea necesario para procesar el año por completo. | 2021 |