Padrões de datetime

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime

Há vários cenários comuns para uso de data/hora no Azure Databricks:

Tabela de padrões

O Azure Databricks usa letras de padrão na tabela a seguir para análise e formatação de carimbo de data e hora:

Símbolo Significado Apresentação Exemplos
G era text AD; Anno Domini
y ano ano 2020; 20
D dia-do-ano número(3) 189
M/L mês-do-ano mês 7; 07; Jul; Julho
d dia-do-mês número(3) 28
P/q Trimestre-de-Ano número/texto 3; 03; 3º; 3º trimestre
E dia-da-semana text Ter; Terça-feira
F alinhado dia da semana no mês número(1) 3
um am-pm-de-dia AM-PM PM
h hora-relógio-da-am-pm (1-12) número(2) 12
K Hora da AM-PM (0-11) número(2) 0
k Hora-relógio do dia (1-24) número(2) 0
H Hora do dia (0-23) número(2) 0
m minuto-de-hora número(2) 30
s segundo-de-minuto número(2) 55
S fração de segundo fração 978
V ID de fuso horário identificação da zona América/Los_Angeles; Z; -08:30
z nome do fuso horário nome-da-zona Hora Padrão do Pacífico; PST
O deslocamento de zona localizado compensação-O GMT+8; GMT+08:00; UTC-08:00;
X deslocamento de zona 'Z' para zero compensação-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x deslocamento de zona compensação-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z deslocamento de zona compensação-Z +0000; -0800; -08:00;
' Escape para texto delimitador
'' citação única Literal '
[ início de secção opcional
] fim de secção opcional

A contagem de letras padrão determina o formato.

  • Texto: O estilo do texto é determinado com base no número de letras padrão usadas. Menos de 4 letras padrão usarão a forma de texto curto, normalmente uma abreviação, por exemplo, segunda-feira do dia da semana pode produzir "Seg". Exatamente 4 letras padrão usarão o formulário de texto completo, normalmente a descrição completa, por exemplo, segunda-feira do dia da semana pode produzir "segunda-feira". 5 ou mais letras falharão.

  • Número(n): O n aqui representa a contagem máxima de letras que este tipo de padrão datetime pode ser usado. Se a contagem de letras for uma, então o valor é gerado 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-acolchoado conforme necessário.

  • Número/Texto: Se a contagem de letras padrão for 3 ou superior, 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, SSSSSSpara analisar e formatar fração de segundo. Para a análise, o comprimento da fração aceitável pode ser [1, o número de «S» contíguos]. Para a formatação, o comprimento da fração seria acolchoado ao número de «S» contíguos com zeros. O Azure Databricks suporta datetime de precisão micro-of-second, que tem até 6 dígitos significativos, mas pode analisar nano-of-second com a parte excedida truncada.

  • Ano: A contagem de letras determina a largura mínima do campo abaixo da qual o preenchimento é usado. Se a contagem de letras for duas, então uma forma reduzida de dois dígitos é usada. Para impressão, isso gera os dois dígitos mais à direita. Para a análise, esta análise utilizará o valor de base de 2000, resultando num ano dentro do intervalo de 2000 a 2099, inclusive. Se a contagem de letras for inferior a quatro (mas não duas), então o sinal só é produzido para anos negativos. Caso contrário, o sinal é de saída se a largura da almofada for excedida quando 'G' não estiver presente. 7 ou mais letras falharão.

  • Mês: Segue a regra do Número/Texto. A forma de texto depende de letras - 'M' denota a forma "padrão" e 'L' é para a forma "independente". Estas duas formas são diferentes apenas em algumas línguas. Por exemplo, em russo, 'Июль' é a forma independente de julho, e 'Июля' é a forma padrão. Aqui estão exemplos de todas as letras de padrão suportadas:

    • 'M' ou 'L': Número do mês num ano a partir de 1. Não há diferença entre 'M' e 'L'. Mês de 1 a 9 são impressos sem preenchimento.

      > SELECT date_format(date '1970-01-01', 'M');
        1
      
      > SELECT date_format(date '1970-12-01', 'L');
        12
      
    • 'MM' ou 'LL': Número do mês num ano a partir de 1. O preenchimento zero é adicionado para os meses 1-9.

      > SELECT date_format(date '1970-1-01', 'LL');
        01
      
      > SELECT date_format(date '1970-09-01', 'MM');
        09
      
    • 'MMM': Breve representação textual no formulário-tipo. O padrão de mês deve fazer parte de um padrão de data, não apenas de um mês autônomo, exceto em localidades onde não há diferença entre formulários autônomos e 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 completa do mês no formulário-tipo. É 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 o am-pm-of-day. A contagem de letras padrão deve ser 1.

  • ID da Zona(V): Isso gera a exibição da ID do fuso horário. A contagem de letras padrão deve ser 2.

  • Nomes de zona(z): Isso gera o nome textual de exibição do ID de fuso horário. Se a contagem de letras é uma, duas ou três, então o nome curto é saída. Se a contagem de letras for quatro, então o nome completo é saída. Cinco ou mais letras falharão.

  • Deslocamento X e x: formata o deslocamento com base no número de letras padrão. Uma letra produz apenas a hora, como '+01', a menos que o minuto seja diferente de zero, caso em que o minuto também é saída, como '+0130'. Duas letras produzem a hora e o minuto, sem dois pontos, como '+0130'. Três letras produzem a hora e o minuto, com dois pontos, como '+01:30'. Quatro letras produzem a hora e o minuto e um segundo opcional, sem dois pontos, como '+013015'. Cinco letras produzem a hora e o minuto e o segundo opcional, com dois pontos, como '+01:30:15'. Seis ou mais letras falharão. A letra padrão 'X' (maiúsculas) produzirá 'Z' quando o deslocamento a ser produzido for zero, enquanto a letra padrão 'x' (minúscula) produzirá '+00', '+0000' ou '+00:00'.

  • Deslocamento O: Formata o deslocamento localizado com base no número de letras padrão. Uma letra produz a forma curta do deslocamento localizado, que é texto deslocado localizado, como 'GMT', com hora sem zero à esquerda, minuto opcional de 2 dígitos e segundo se diferente de zero, e dois pontos, por exemplo 'GMT+8'. Quatro letras produzem o formulário completo, que é texto deslocado localizado, como 'GMT, com campo de hora e minuto de 2 dígitos, segundo campo opcional se diferente de zero, e dois pontos, por exemplo 'GMT+08:00'. Qualquer outra contagem de letras falhará.

  • Deslocamento Z: Formata o deslocamento com base no número de letras padrão. Uma, duas ou três letras produzem a hora e o minuto, sem dois pontos, como '+0130'. A saída é '+0000' quando o deslocamento é zero. Quatro letras produzem a forma completa de deslocamento localizado, equivalente a quatro letras de Offset-O. A saída é o texto de deslocamento localizado correspondente se o deslocamento for zero. Cinco letras produzem a hora, minuto, com segundo opcional se diferente de zero, com dois pontos. Ele produz 'Z' se o deslocamento for zero. Seis ou mais letras falharão.

  • Início e fim 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 produzidos, mesmo que estejam na seção opcional. Durante a análise, toda a seção pode estar faltando na cadeia de caracteres analisada. Uma seção opcional é iniciada e [ terminada usando ] (ou no final do padrão).

  • Os símbolos de «E», «F», «q» e «Q» só podem ser utilizados para a formatação datetime, por exemplo, date_format. Eles não são permitidos usados para análise de data/hora, por exemplo. to_timestamp