Padrões de datetime
Aplica-se a: SQL do Databricks Databricks Runtime
Há vários cenários comuns de uso de datetime no Azure Databricks:
- As fontes de dados CSV e JSON usam a cadeia de caracteres do padrão para analisar e formatar o conteúdo do datetime.
- Funções datetime relacionadas a converter
STRING
de e paraDATE
ouTIMESTAMP
. Por exemplo:
Tabela de padrões
O Azure Databricks usa as letras do padrão na tabela a seguir para a análise e a formatação de data e carimbo de data/hora:
Símbolo | Significado | Apresentação | Exemplos |
---|---|---|---|
G | era | text | DC; Depois de Cristo |
y | year | year | 2020; 20 |
D | day-of-year | number(3) | 189 |
M/L | month-of-year | month | 7; 07; Jul; Julho |
d | day-of-month | number(3) | 28 |
Q/q | quarter-of-year | number/text | 3; 03; T3; 3º trimestre |
E. | day_of_week | text | Ter; Terça-feira |
F | dia de semana alinhado no mês | number(1) | 3 |
a | am-pm-of-day | am-pm | PM |
h | clock-hour-of-am-pm (1-12) | number(2) | 12 |
K | hour-of-am-pm (0-11) | number(2) | 0 |
k | clock-hour-of-day (1-24) | number(2) | 0 |
H | hour-of-day (0-23) | number(2) | 0 |
m | minute-of-hour | number(2) | 30 |
s | second-of-minute | number(2) | 55 |
S | fraction-of-second | fração | 978 |
V | time-zone ID | zone-id | America/Los_Angeles; Z; -08:30 |
z | nome da time-zone | zone-name | Hora Oficial do Pacífico; PST |
O | zone-offset localizada | offset-O | GMT+8; GMT+08:00; UTC-08:00; |
X | zone-offset "Z" para zero | 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 de texto | delimiter | |
‘’ | aspas simples | literal | ‘ |
[ | início da seção opcional | ||
] | final da seção opcional |
A contagem de letras padrão determina o formato.
Texto: o estilo de texto é determinado com base no número de letras do padrão usadas. Menos de 4 letras de padrão usarão o formato de texto curto, normalmente uma abreviação, por exemplo, o dia da semana de segunda-feira pode gerar "Seg". Exatamente 4 letras de padrão usarão o formulário de texto completo, normalmente a descrição completa, por exemplo, o dia da semana de segunda-feira pode gerar "segunda-feira". Haverá falha em 5 ou mais letras.
Number(n): o n aqui representa a contagem máxima de letras que esse tipo de padrão datetime pode ser usado. Se a contagem de letras for uma, o valor será de saída usando o número mínimo de dígitos e sem preenchimento. Caso contrário, a contagem de dígitos é usada como a largura do campo de saída, com o valor zero-preenchido conforme necessário.
Número/texto: se a contagem de letras padrão for 3 ou maior, use as regras de texto acima. Caso contrário, use as regras de Número acima.
Fração: use um ou mais (até 9) caracteres contíguos
'S'
, por exemplo,SSSSSS
para analisar e formatar a fração de segundo. Para análise, o comprimento aceitável da fração pode ser [1, o número do ‘S’ contíguo]. Para a formatação, o comprimento da fração seria preenchido para o número de ‘S’ contíguos. O Azure Databricks dá suporte a datetime de precisão de micro de segundo, que tem até 6 dígitos significativos, mas pode analisar o nano-of-second com uma parte excedente truncada.Ano: a contagem de letras determina a largura mínima do campo abaixo do qual o preenchimento é usado. Se a contagem de letras for duas, um formulário de dois dígitos reduzidos será usado. Para impressão, isso gera os dois dígitos da extrema direita. Para análise, isso será analisado usando o valor base de 2000, resultando em um ano dentro do intervalo de 2000 a 2099, inclusive. Se a contagem de letras for menor que quatro (mas não duas), o sinal será apenas de saída por anos negativos. Caso contrário, o sinal será apresentado se a largura do preenchimento for excedida quando "G" não estiver presente. 7 ou mais letras falharão.
Mês: segue a regra de Número/Texto. O formulário de texto depende de letras –
'M'
denota o formulário "padrão" e'L'
é para o formulário "autônomo". Essas duas formas são diferentes somente em alguns idiomas específicos. Por exemplo, em russo, "Июль" é a forma autônoma de julho e "Июля" é o formulário padrão. Aqui estão exemplos de todas as letras padrão com suporte:'M'
ou'L'
: o número do mês em um ano começando em 1. Não há nenhuma diferença entre'M'
e'L'
. O mês de 1 a 9 é mostrado sem preenchimento.> SELECT date_format(date '1970-01-01', 'M'); 1 > SELECT date_format(date '1970-12-01', 'L'); 12
'MM'
ou'LL'
: o número do mês em um ano começando em 1. O preenchimento zero é adicionado para os meses de 1 a 9.> SELECT date_format(date '1970-1-01', 'LL'); 01 > SELECT date_format(date '1970-09-01', 'MM'); 09
'MMM'
: representação textual curta no formulário padrão. O padrão de mês deve ser parte de um padrão de data não apenas um mês autônomo, exceto localidades em que não há nenhuma diferença entre formatos autônomos, como em 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'
: representação textual curta no formulário padrão. Ele é usado para analisar/formatar meses como parte de datas/carimbos de data/hora.> 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: isso produz am-pm-of-day. A contagem de letras do padrão deve ser 1.
ID da Zona(V): isso gera a exibição da ID do fuso horário. A contagem de letras do padrão deve ser 2.
Nomes de zona(z): isso gera o nome textual de exibição da ID de fuso horário. Se a contagem de letras for uma, duas ou três, o nome curto será a saída. Se a contagem de letras for quatro, o nome completo será a saída. Haverá falha em cinco ou mais letras.
Offset-X e x: formata a diferença com base no número de letras do padrão. Uma letra gera apenas a hora, como "+01", a menos que o minuto seja diferente de zero, caso o minuto também seja resultado, como "+0130". Duas letras geram a hora e o minuto, sem dois-pontos, como "+0130". Duas letras geram a hora e o minuto, com dois-pontos, como "+01:30". Quatro letras geram a hora e o minuto, além do segundo opcional, sem dois-pontos, como "+013015". Cinco letras geram a hora e o minuto, além do segundo opcional, com dois-pontos, como "+01:30:15". Seis ou mais letras falharão. A letra do padrão "X" (maiúscula) produzirá "Z" quando a diferença de saída for zero, enquanto a letra de padrão "x" (minúsculo) produzirá "+00", "+0000" ou "+00:00".
Offset-O: formata a diferença localizada com base no número de letras do padrão. Uma letra gera a forma abreviada da diferença localizada, que é texto de diferença localizada, como "GMT", com hora sem zero à esquerda, minuto de 2 dígitos opcional e segundo, se não for zero, e dois-pontos, por exemplo, "GMT+8". As quatro letras geram a forma completa, que é o texto de diferença localizado, como "GMT", com o campo de hora e minuto de 2 dígitos, o segundo campo opcional se for diferente de zero e dois-pontos, por exemplo, "GMT+08:00". Qualquer outra contagem de letras falhará.
Offset-Z: formata a diferença com base no número de letras do padrão. Duas letras geram a hora e o minuto, sem dois-pontos, como "+0130". A saída será "+0000" quando a diferença for zero. Quatro letras geram a forma completa de diferença localizado, equivalente a quatro letras de Offset-O. A saída será o texto de diferença localizada correspondente se a diferença for zero. As cinco letras geram a hora, minuto, com o segundo opcional, se for diferente de zero, com dois-pontos. Isso gerará "Z" se a diferença for zero. Seis ou mais letras falharão.
Início e término da seção opcional: use
[]
para definir uma seção opcional e talvez aninhada. Durante a formatação, todos os dados válidos são gerados mesmo que estejam na seção opcional. Durante a análise, a seção inteira pode estar ausente da cadeia de caracteres analisada. Uma seção opcional é iniciada pelo[
e terminada usando]
(ou no final do padrão).Os símbolos "E", "F", "q" e "Q" só podem ser usados para formatação de datetime, por exemplo,
date_format
. Eles não têm permissão para usar a análise de datetime, por exemplo,to_timestamp
.