Cuando introduce su consulta en el Editor SQL o crea un cálculo, utiliza sintaxis Presto SQL. Para ajustar o realizar cálculos sobre valores de Fecha o Marca de tiempo, puede que le resulten útiles estas funciones comunes.
Nota: Las variables de tiempo de ejecución en las Cadenas, como las utilizadas para las transformaciones de fecha y hora de , utilizan strftime de Python en lugar de Presto SQL.
EN ZONA HORARIA
Para convertir la zona horaria de una marca de tiempo, utilice el operador EN ZONA HORARIA
. Por ejemplo:
SELECT cast(timestamp '2020-10-31 01:00 UTC' as VARCHAR) 2020-10-31 01:00:00.000 UTC SELECT cast(timestamp '2020-10-31 01:00 UTC' AT TIME ZONE 'America/Los_Angeles' as VARCHAR) 2020-10-30 18:00:00.000 America/Los_Angeles
Consejo: En la mayoría de las zonas, puede utilizar America/Los_Angeles
para la zona horaria del Pacífico, America/Denver
para Mountain, America/Chicago
para Central y America/New_York
para Eastern.
FECHA_ACTUAL
Para obtener la fecha en la que se ejecuta la consulta, utilice la función CURRENT_DATE
. Por ejemplo, SELECT CURRENT_DATE()
.
FECHA
Para convertir un valor en un valor de fecha, utilice la función DATE
como DATE(valor).
DATE_ADD
Para agregar un valor de unidad de intervalo a una fecha o marca de tiempo, utilice la función DATE_ADD
como DATE_ADD(unidad, valor, marca de tiempo). Para unidad, DATE_ADD
soporta:
milisegundo
segundo
minuto
hora
día
semana
mes
trimestre
año
Por ejemplo, SELECT DATE_ADD('día', 10, "2020-06-15")
devuelve 2020-06-25.
Nota: Para analizar una cadena con formato IS08601 como valor de fecha, utilice la función FROM_ISO8601_DATE
, como FROM_ISO8601_DATE('2020-06-15')
.
DATE_DIFF
Para devolver la diferencia de dos valores de fecha o timestamp, utilice la función DATE_DIFF
como DATE_DIFF(unidad, timestamp1, timestamp 2). Para la unidad , DATE_DIFF
admite los mismos valores que DATE_ADD
. Por ejemplo, SELECT DATE_DIFF('day', "2020-06-15", "2020-06-25")
devuelve 10.
Nota: DATE_DIFF
sólo se aplica a objetos Fecha y es posible que tenga que asignar otros objetos para que esta función funcione.
Nota: Para analizar una cadena con formato IS08601 como valor de fecha, utilice la función FROM_ISO8601_DATE
, como FROM_ISO8601_DATE('2020-06-15')
.
FORMATO_FECHA
Para devolver un valor de fecha o marca de tiempo en un formato establecido, utilice la función DATE_FORMAT
como DATE_FORMAT(timestamp, format). Para el formato , DATE_FORMAT
admite una combinación de estos valores:
Formato | Descripción |
---|---|
%a |
Nombre abreviado del día de la semana, desdeSun hasta Sat |
%b |
Nombre abreviado del mes, de Jan a Dec |
%c |
Valor numérico del mes, de 1 a 12. |
%d |
Numerador del día del mes como número de dos cifras, de 01 a 31 |
%e |
Numerador del día del mes, de 1 a 31 |
%f |
Milisegundo, de 000000 a 999000 para la impresión; de 0 a 999999999 para el análisis sintáctico |
%H |
Hora del reloj de 24 horas como número de dos cifras, de 00 a 23 |
%h o %I |
Hora del reloj de 12 horas como número de dos cifras, de 00 a 12 |
%i |
Minuto, de 00 a 59 |
%j |
Día del año como número de tres cifras, de 000 a 366 |
%k |
Hora del reloj de 24 horas, de 0 a 23 |
%l |
Hora del reloj de 12 horas, de 0 a 12 |
%M |
Nombre del mes, de Enero a Diciembre |
%m |
Valor numérico del mes como número de dos cifras, desde 01 hasta 12. |
%p |
AM o PM del reloj de 12 horas |
%r |
Hora en un reloj de 12 horas, como hh:mm:ss seguido de AM o PM |
%s o %S |
Segundo, de 00 a 59 |
%T |
Hora en el reloj de 24 horas, como hh:mm:ss |
%v |
Semana del año, de 01 a 53 , donde el lunes es el primer día de la semana; se utiliza con %x |
%W |
Nombre del día de la semana, deDomingo a Sábado |
%x |
Año para cuando el lunes es el primer día de la semana; se utiliza con %v |
%Y |
Año, como número de cuatro cifras |
%y |
Año, como número de dos cifras Nota: Al analizar, |
%% |
El carácter literal % |
Nota: Para devolver el día de la semana en forma de número, desde 1
hasta 7
, utilice la función DAY_OF_WEEK
.
DÍA
Para obtener el día del mes -como un número del 1 al 31- a partir de una fecha o marca de tiempo, utilice la función DAY
como DAY(date_value). Por ejemplo, SELECT DAY("2020-06-15")
devuelve 15.
DÍA_DE_LA_SEMANA
Para obtener el día de la semana -como un número desde 1
para el lunes hasta 7
para el domingo- a partir de una fecha o marca de tiempo, utilice la función DAY_OF_WEEK
como DAY_OF_WEEK(date_value).
EOMONTH
Para devolver el número del último día del mes a partir de una fecha o marca de tiempo, utilice la función EOMONTH
, como EOMONTH(date_value, month_number_value).
DE_ISO8601_FECHA
Para analizar una cadena con formato ISO8601 como fecha, utilice la función FROM_ISO8601_DATE
, como FROM_ISO8601_DATE(date_value).
INTERVALO
Para sumar o restar valores unitarios de intervalo para una fecha o una marca de tiempo, utilice la función INTERVALO
con un operador +
o -
, como +/- INTERVALO valor unidad. Para unidad, INTERVALO
admite los mismos valores que DATE_ADD
. Por ejemplo:
-
FECHA '2020-08-08' + INTERVALO '2' día
devuelve 2020-08-10. -
TIMESTAMP '2020-08-08 01:00' + INTERVALO '29' hora
devuelve 2020-08-09 06:00:00.000. -
INTERVALO '2' día + INTERVALO '3' hora
devuelve 2 03:00:00.000. -
TIMESTAMP '2020-10-31 01:00' - INTERVALO '1' mes
devuelve 2020-09-30 01:00:00.000.
MES
Para obtener el mes -como un número del 1 al 12- a partir de una fecha o una marca de tiempo, utilice la función MONTH
como MONTH(date_value). Por ejemplo, SELECT MONTH("2020-06-15")
devuelve 6.
AHORA
Para devolver la fecha y hora en que se ejecuta la consulta, utilice la función NOW
. Por ejemplo, SELECT NOW()
.
TRIMESTRE
Para devolver el trimestre del año -como un número del 1 al 4- a partir de una fecha o una marca de tiempo, utilice la función QUARTER
como QUARTER(date_value). Por ejemplo, SELECT QUARTER("2020-06-15")
devuelve 2.
AÑO
Para devolver el año -como un número de 1000 a 9990- a partir de una fecha o una marca de tiempo, utilice la función YEAR
como YEAR(date_value). Por ejemplo, SELECT YEAR("2020-06-15")
devuelve 2020.