Padrões de datetime

Existem vários cenários comuns para o uso da hora de data no SQL Analytics:

  • As fontes de dados CSV e JSON utilizam a cadeia de padrões para analisar e formatar o conteúdo da hora de data.
  • Funções de data relacionadas com conversão StringType de e para ou DateType TimestampType . Por exemplo, unix_timestamp date_format to_unix_timestamp from_unixtime to_date to_timestamp from_utc_timestamp to_utc_timestamp .

A SQL Analytics utiliza letras padrão na tabela seguinte para a análise e formatação da data e hora:

Símbolo Significado Apresentação Exemplos
G era texto AD; Anno Domini
y ano ano 2020; 20
D dia-do-ano número(3) 189
M/L mês do ano month 7; 07; Jul; Julho
d dia-do-dia número(3) 28
Q/q trimestre do ano número/texto 3; 03; Terceiro trimestre; 3º trimestre
E dia-de-semana texto Tue; Terça-feira
F dia alinhado da semana no mês número(1) 3
um am-pm-do-dia am-pm PM
h relógio-hora-de-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 minutos de hora número(2) 30
s segundo de minuto número(2) 55
S fração de segundo fraction 978
V ID de fuso horário zona id América/Los_Angeles; Z; -08:30
z nome de fuso horário nome de zona Horário padrão do Pacífico; PST
O zona-offset localizada offset-O GMT+8; GMT+08:00; UTC-08:00;
X zona-offset 'Z' para zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x compensação de zonas offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z compensação de zonas offset-Z +0000; -0800; -08:00;
fuga para o 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 de texto é determinado com base no número de letras padrão utilizadas. Menos de 4 letras padrão usarão o formulário de texto curto, tipicamente uma abreviatura, por exemplo, segunda-feira do dia-a-semana pode ser saída "Mon". Exatamente 4 letras padrão usarão o formulário de texto completo, tipicamente a descrição completa, por exemplo, o dia-a-semana de segunda-feira pode ser a saída "Segunda-feira". 5 ou mais letras falharão.

  • Número(n): O n aqui representa a contagem máxima de letras este tipo de padrão de hora de data pode ser usado. Se a contagem de letras for uma, então o valor é a saída usando o número mínimo de dígitos e sem enchimento. Caso contrário, a contagem de dígitos é utilizada como a largura do campo de saída, com o valor acolchoado acolchoado conforme necessário.

  • Número/Texto: Se a contagem de letras padrão for 3 ou superior, utilize as regras do Texto acima. Caso contrário, utilize as regras número acima.

  • Fração: Utilize um ou mais (até 9) caracteres contíguos, 'S' por SSSSSS exemplo, para analisar e em formato 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 formatação, o comprimento da fração seria acolchoado ao número de 'S' contíguos com zeros. A SQL Analytics suporta datas de precisão micro-de segundo, que tem até 6 dígitos significativos, mas pode analisar nano-de-segundo com parte truncada.

  • Ano: A contagem de letras determina a largura mínima do campo abaixo da qual é utilizado o enchimento. Se a contagem de letras for de dois, então é usado um formulário reduzido de dois dígitos. Para impressão, isto produz os dois dígitos mais à direita. Para a análise, isto será analisado utilizando o valor base de 2000, resultando num ano dentro do intervalo 2000-2099 inclusive. Se a contagem de letras for inferior a quatro (mas não duas), então o sinal é apenas de saída 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. O formulário de texto depende de letras - 'M' denota o formulário 'standard' e 'L' é para forma 'autónoma'. Estas duas formas são diferentes apenas em algumas línguas. Por exemplo, em russo, "Июль" é a forma autónoma de julho, e "Июля" é a forma padrão. Aqui estão exemplos para todas as letras de padrão suportadas:

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

      select date_format(date '1970-01-01', "M");
      1
      select date_format(date '1970-12-01', "L");
      12
      
    • 'MM' ou 'LL' : Número de mês num ano a partir de 1. Acolchoamento zero é adicionado para o mês 1-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 do mês deve fazer parte de um padrão de data não apenas um mês autónomo, exceto locais onde não há diferença entre formas de stand e autónoma como em inglês.

      select date_format(date '1970-01-01', "d MMM");
      1 Jan
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'dd MMM', 'locale', 'RU'));
      01 янв.
      
    • 'LLL': Representação textual curta na forma autónoma. Deve ser utilizado para formato/análise apenas meses sem quaisquer outros campos de data.

      select date_format(date '1970-01-01', "LLL");
      
      Jan
      
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'LLL', 'locale', 'RU'));
      
      янв.
      
    • 'MMMM': representação textual completa no formulário normal. É utilizado para analisar/formatar meses como parte de datas/timetamps.

      select date_format(date '1970-01-01', "d MMMM");
      
      1 January
      
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU'));
      
      1 января
      
    • 'LLLL': representação textual completa na forma autónoma. O padrão pode ser usado para formato/parse apenas meses.

      select date_format(date '1970-01-01', "LLLL");
      
      January
      
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'LLLL', 'locale', 'RU'));
      
      январь
      
  • am-pm: Esta saídas o am-pm-do-dia. A contagem de letras padrão deve ser 1.

  • ID de zona(V): Isto permite visualizar o ID do fuso horário. A contagem de letras padrão deve ser 2.

  • Nomes de zona(z): Isto produz o nome textual do iD do 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 é quatro, então o nome completo é saída. Cinco ou mais letras vão falhar.

  • Offset X e x: Este formatos o offset com base no número de letras padrão. Uma letra produz apenas a hora, como '+01', a menos que o minuto não seja zero, caso em que o minuto também é saída, como '+0130'. Duas letras desema ção por hora e minuto, sem cólon, como '+0130'. Três letras desema ção por hora e minuto, com um cólon, como '+01:30'. Quatro letras desema ção da hora e minuto e segunda opcional, sem cólon, como '+013015'. Cinco letras desema ção da hora e minuto e segunda opcional, com um cólon, como '+01:30:15'. Seis ou mais letras vão falhar. A letra padrão 'X' (maiúscula) irá der o 'Z' quando a compensação a ser de saída seria zero, enquanto a letra padrão 'x' (minúscula) irá der o produção '+00', '+0000', ou '+00:00'.

  • Offset O: Este formatos o offset localizado com base no número de letras padrão. Uma letra produz a forma curta do offset localizado, que é localizado texto offset, como 'GMT', com hora sem liderar zero, opcional minuto de 2 dígitos e segundo se não-zero, e cólon, por exemplo 'GMT+8'. Quatro letras derramam o formulário completo, que é localizado texto offset, como 'GMT, com campo de 2 dígitos de hora e minutos, segundo campo opcional se não-zero, e cólon, por exemplo 'GMT+08:00'. Qualquer outra contagem de cartas falhará.

  • Offset Z: Este formatos o offset com base no número de letras padrão. Uma, duas ou três letras desema produção de hora e minuto, sem cólon, como '+0130'. A saída é '+0000' quando o offset é zero. Quatro letras derramam a forma completa de compensação localizada, equivalente a quatro letras de Offset-O. A saída é o texto offset localizado correspondente se a compensação for zero. Cinco letras desema ção por hora, minuto, com opcional segundo se não zero, com cólon. Produz 'Z' se o offset for zero. Seis ou mais letras vão falhar.

  • Início e fim da secção opcional: Utilize [] para definir uma secção opcional e talvez aninhada. Durante a formatação, todos os dados válidos são de saída mesmo que está na secção opcional. Durante a análise, toda a secção pode estar ausente da corda de parsed. Uma secçã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 formatação de datas, por date_format exemplo. Não são permitidos para a análise da hora de data, por to_timestamp exemplo.