Patrones de fecha y hora

Se aplica a:check marked yes Databricks SQL check marked yes Databricks Runtime

Hay varios escenarios comunes para el uso de datetime en Azure Databricks:

Tabla de patrones

Azure Databricks usa las letras del patrón de la tabla siguiente para el análisis y el formato de fecha y marca de tiempo:

Símbolo Significado Presentación Ejemplos
G era text AD; Anno Domini
y year year 2020; 20
D día del año número(3) 189
M/L mes del año month 7; 07; Jul; Julio
d día del mes número(3) 28
Q/q trimestre del año number/text 3; 03; T3; tercer trimestre
E día de la semana text Mar; Martes
F día de la semana alineado en el mes number(1) 3
a am o pm del día am-pm PM
h hora de reloj de am o pm (1-12) número(2) 12
K hora de am o pm (0-11) número(2) 0
k hora de reloj de día (1-24) número(2) 0
H hora de día (0-23) número(2) 0
m minuto de hora número(2) 30
s segundo de minuto número(2) 55
S fracción de segundo fraction 978
V id. de zona horaria zone-id America/Los_Angeles; Z; -08:30
z nombre de zona horaria nombre de zona Hora estándar del Pacífico; PST
O diferencia horaria localizada offset-O GMT+8; GMT+08:00; UTC-08:00;
X diferencia horaria "Z" para cero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z zone-offset offset-Z +0000; -0800; -08:00;
escape para texto delimiter
‘’ comillas simples literal
[ inicio de sección opcional
] fin de sección opcional

El recuento de letras del patrón determina el formato.

  • Texto: el estilo del texto se determina en función del número de letras del patrón usadas. Con menos de cuatro letras del patrón se usa el formato de texto corto, normalmente una abreviatura, por ejemplo, el día de la semana Lunes podría generar "Lun". Con exactamente cuatro letras del patrón se usa el formato de texto completo, normalmente la descripción completa, por ejemplo, el día de la semana Lunes podría generar "Lunes". Con cinco o más letras se produce un error.

  • Número(n): aquí n representa el recuento máximo de letras que se pueden usar en este tipo de patrón de fecha y hora. Si el recuento de letras es uno, el valor se genera mediante el número mínimo de dígitos y sin relleno. De lo contrario, el recuento de dígitos se usa como ancho del campo de salida, con el valor rellenado con ceros según sea necesario.

  • Número o texto: si el recuento de letras del patrón es tres o más, use las reglas de texto anteriores. De lo contrario, use las reglas de número anteriores.

  • Fracción: use uno o más (hasta nueve) caracteres 'S' contiguos, por ejemplo, SSSSSS, para analizar la fracción de segundo y darle formato. Para el análisis, la longitud de fracción aceptable puede ser [1, el número de "S" contiguas]. Para el formato, la longitud de fracción se rellenaría hasta el número de "S" contiguas con ceros. Azure Databricks admite datetime con una precisión de microsegundos, que tiene hasta 6 dígitos significativos, pero puede analizar nanosegundos con la parte superada truncada.

  • Año: el recuento de letras determina el ancho mínimo de campo por debajo del que se usa relleno. Si el recuento de letras es dos, se usa un formato reducido de dos dígitos. A la hora de imprimir, esto genera los dos dígitos más a la derecha. A la hora de analizar, se analiza con el valor base de 2000, lo que da como resultado un año dentro del intervalo de 2000 a 2099, ambos incluidos. Si el recuento de letras es inferior a cuatro (pero no dos), el signo solo se genera para años negativos. De lo contrario, el signo se genera si se supera el ancho del relleno cuando "G" no está presente. Con siete o más letras se produce un error.

  • Mes: sigue la regla de número o texto. El formato del texto depende de las letras: 'M' denota el formato "estándar" y 'L' es para el formato "independiente". Estos dos formatos solo son diferentes en algunos idiomas determinados. Por ejemplo, en ruso, "Июль" es el formato independiente de julio, y "Июля" es el formato estándar. Estos son ejemplos de todas las letras del patrón admitidas:

    • 'M' o 'L': número de mes en un año a partir de 1. No hay ninguna diferencia entre 'M' y 'L'. Los meses del 1 al 9 se imprimen sin relleno.

      > SELECT date_format(date '1970-01-01', 'M');
        1
      
      > SELECT date_format(date '1970-12-01', 'L');
        12
      
    • 'MM' o 'LL': número de mes en un año a partir de 1. Se agrega relleno cero para los meses del 1 al 9.

      > SELECT date_format(date '1970-1-01', 'LL');
        01
      
      > SELECT date_format(date '1970-09-01', 'MM');
        09
      
    • 'MMM': representación textual corta en el formato estándar. El patrón del mes debe ser parte de un patrón de fecha, no solo un mes independiente, excepto en las configuraciones regionales en las que no hay ninguna diferencia entre los formatos estándar e independiente, como en inglés.

      > SELECT date_format(date '1970-01-01', 'd MMM');
        1 Jan
      
      -- Passing a format pattern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'dd MMM', 'locale', 'RU'));
        01 янв.
      
    • 'MMMM': representación mensual textual completa en el formato estándar. Se usa para analizar meses o darles formato como parte de fechas o marcas de tiempo.

      > SELECT date_format(date '1970-01-01', 'd MMMM');
        1 January
      
      -- Passing a format pttern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU'));
        1 января
      
  • am-pm: esto indica si se trata de am o pm en el día. El recuento de letras del patrón debe ser 1.

  • Id. de zona (V): genera la representación del identificador de zona horaria. El recuento de letras del patrón debe ser 2.

  • Nombres de zona (Z): esto genera el nombre textual para mostrar del identificador de zona horaria. Si el recuento de letras es uno, dos o tres, se genera el nombre corto. Si el recuento de letras es cuatro, se genera el nombre completo. Con cinco o más letras se produce un error.

  • Diferencia horaria X y x: da formato a la diferencia horaria en función del número de letras del patrón. Con una letra se genera solo la hora, como "+01", a menos que el minuto sea distinto de cero, en cuyo caso también se genera el minuto, como "+0130". Con dos letras se genera la hora y el minuto, sin dos puntos, como "+0130". Con tres letras se genera la hora y el minuto, con dos puntos, como "+01:30". Con cuatro letras se genera la hora y el minuto y el segundo opcional, sin dos puntos, como "+013015". Con cinco letras se genera la hora y el minuto y el segundo opcional, con dos puntos, como "+01:30:15". Con seis o más letras se produce un error. La letra del patrón "X" (mayúscula) genera "Z" si la diferencia horaria que se va a generar es cero, mientras que la letra del patrón "x" (minúscula) genera "+00", "+0000" o "+00:00".

  • Diferencia horaria O: da formato a la diferencia horaria localizada en función del número de letras del patrón. Con una letra se genera el formato corto de la diferencia horaria localizada, que es texto de diferencia horaria localizado, como "GMT", con hora sin cero inicial, minuto opcional de dos dígitos y segundo si no es cero, y dos puntos, por ejemplo, "GMT+8". Con cuatro letras se genera el formato completo, que es texto de diferencia horaria localizado, como "GMT, con campo de hora y minuto de dos dígitos, campo de segundo opcional si no es cero y dos puntos, por ejemplo, "GMT+08:00". Con cualquier otro número de letras se produce un error.

  • Diferencia horaria Z: da formato a la diferencia horaria en función del número de letras del patrón. Con una, dos o tres letras se genera la hora y el minuto, sin dos puntos, como "+0130". La salida es "+0000" si la diferencia horaria es cero. Con cuatro letras se genera el formato completo de la diferencia horaria localizada, equivalente a cuatro letras de la diferencia O. La salida es el texto de la diferencia horaria localizada correspondiente si esta es cero. Con cinco letras se genera la hora, el minuto, con el segundo opcional si no es cero, con dos puntos. Genera "Z" si la diferencia horaria es cero. Con seis o más letras se produce un error.

  • Inicio y fin de sección opcional: use [] para definir una sección opcional y quizás anidada. Al aplicar formato se generan todos los datos válidos, aunque se encuentren en la sección opcional. Durante el análisis, es posible que falte toda la sección en la cadena analizada. Una sección opcional se inicia mediante [ y termina con ] (o al final del patrón).

  • Los símbolos "E", "F", "q" y "Q" solo se pueden usar para el formato de fecha y hora, por ejemplo, date_format. No se permiten para el análisis de fecha y hora, por ejemplo, to_timestamp.