Compartilhar via


Padrões de datetime

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva Databricks Runtime

Há vários cenários comuns de uso de datetime no Azure Databricks:

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.