Vzory pro datum a čas
Platí pro: Databricks SQL Databricks Runtime
V Azure Databricks existuje několik běžných scénářů použití data a času:
- Zdroje dat CSV a JSON používají vzorový řetězec k analýze a formátování obsahu data a času.
- Funkce data a času související s převodem
STRING
na nebo zDATE
neboTIMESTAMP
. Příklad:
Vzorová tabulka
Azure Databricks používá vzorová písmena v následující tabulce pro parsování a formátování data a časového razítka:
Symbol | Význam | Prezentace | Příklady |
---|---|---|---|
G | éra | text | REKLAMA; Anno Domini |
y | za rok | za rok | 2020; 20 |
D | day-of-year | číslo(3) | 189 |
M/L | month-of-year | měs | 7; 07; Červenec; Červenec |
d | den v měsíci | číslo(3) | 28 |
Q/q | čtvrtletí roku | číslo/text | 3; 03; Otázka č. 3; 3. čtvrtletí |
E | den v týdnu | text | Út; Úterý |
F | aligned day of week in month | number(1) | 3 |
a | am-pm-of-day | am-pm | PM |
h | hodina odpoledne (1-12) | number(2) | 12 |
K | hodina odpoledne (0–11) | number(2) | 0 |
k | hodina dne (1–24) | number(2) | 0 |
H | hodina dne (0–23) | number(2) | 0 |
m | minuta hodina | number(2) | 30 |
s | sekunda za minutu | number(2) | 55 |
S | zlomek sekundy | frakce | 978 |
V | ID časového pásma | zone-id | Amerika/Los_Angeles; Z; -08:30 |
z | název časového pásma | název zóny | Tichomořský běžný čas; PST |
O | lokalizované odsazení zóny | offset-O | GMT+8; GMT+08:00; UTC-08:00; |
X | odsazení zóny 'Z' pro nulu | offset-X | Z; -08; -0830; -08:30; -083015; -08:30:15; |
x | odsazení zóny | offset-x | +0000; -08; -0830; -08:30; -083015; -08:30:15; |
Z | odsazení zóny | offset-Z | +0000; -0800; -08:00; |
‘ | escape for text | oddělovač | |
‘’ | jednoduchá uvozovka | literal | ‘ |
[ | volitelný začátek oddílu | ||
] | volitelný konec oddílu |
Počet vzorových písmen určuje formát.
Text: Styl textu je určen na základě počtu použitých vzorových písmen. Menší než 4 vzorová písmena budou používat krátký textový formulář, obvykle zkratku, například pondělí v týdnu může vypisovat "Mon". Přesně 4 vzorová písmena budou používat celý textový formulář, obvykle úplný popis, například pondělí v týdnu může vypisovat "Pondělí". 5neboch
Number(n): N zde představuje maximální počet písmen, které lze použít tento typ vzorce data a času. Pokud je počet písmen jeden, je hodnota výstupem s minimálním počtem číslic a bez odsazení. V opačném případě se počet číslic použije jako šířka výstupního pole s hodnotou nula.
Číslo/text: Pokud je počet vzorových písmen 3 nebo větší, použijte výše uvedená pravidla textu. Jinak použijte výše uvedená pravidla číslování.
Zlomek: K analýze a formátování zlomku sekundy použijte jeden nebo více (až 9) souvislých
'S'
znakůSSSSSS
. Pro analýzu může být přijatelná délka zlomku [1, počet souvislých 'S']. Pro formátování by byla délka zlomku vycpaná na počet souvislých "S" s nulami. Azure Databricks podporuje datum a čas mikrosekundové přesnosti, která má až 6 významných číslic, ale dokáže parsovat nano-of-sekundu s překročením zkrácení části.Rok: Počet písmen určuje minimální šířku pole, pod kterou se používá odsazení. Pokud je počet písmen dva, použije se zkrácený dvoumístný formulář. Pro tisk se tím zobrazí úplně vpravo dvě číslice. Při analýze se parsuje pomocí základní hodnoty 2000, což vede k roku v rozsahu 2000 až 2099 včetně. Pokud je počet písmen menší než čtyři (ale ne dva), je znaménko výstupem pouze pro záporné roky. V opačném případě je znaménko výstupem, pokud je šířka panelu překročena, pokud není k dispozici znak G. 7 nebo více písmen selže.
Měsíc: Řídí se pravidlem číslo/text. Textový formulář je závislý na písmenech –
'M'
označuje "standardní" formulář a'L'
je určen pro samostatný formulář. Tyto dvě formy se liší pouze v některých určitých jazycích. Například v ruštině je "Июль" samostatnou formou července a "Июля" je standardní forma. Tady jsou příklady pro všechna podporovaná vzorová písmena:'M'
nebo'L'
: Číslo měsíce v roce od 1.'M'
Mezi a'L'
. Měsíc od 1 do 9 se vytiskne bez odsazení.> SELECT date_format(date '1970-01-01', 'M'); 1 > SELECT date_format(date '1970-12-01', 'L'); 12
'MM'
nebo'LL'
: Číslo měsíce v roce od 1. Nulové odsazení se přidá po dobu měsíců 1–9.> SELECT date_format(date '1970-1-01', 'LL'); 01 > SELECT date_format(date '1970-09-01', 'MM'); 09
'MMM'
: Krátká textová reprezentace ve standardní podobě. Vzor měsíce by měl být součástí vzorce kalendářních dat nejen samostatný měsíc s výjimkou národních prostředí, ve kterých není rozdíl mezi samostatnými a samostatnými formuláři jako v angličtině.> 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'
: full textal month representation in the standard form. Používá se k analýze a formátování měsíců jako součást kalendářních dat a časových razítek.> 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: Výstupem je am-pm-of-day. Počet vzorových písmen musí být 1.
ID zóny(V): Zobrazí se ID časového pásma. Počet vzorových písmen musí být 2.
Názvy zón(z): Výstupem je zobrazovaný textový název ID časového pásma. Pokud je počet písmen jeden, dva nebo tři, je krátký název výstupem. Pokud je počet písmen čtyři, zobrazí se celý název. Pět nebo více písmen selže.
Posun X a x: Formátuje posun na základě počtu písmen vzorku. Jedno písmeno vypíše pouze hodinu, například +01, pokud minuta není nulová, v takovém případě se minuta také zobrazí jako výstup, například +0130. Dvě písmena vypisují hodinu a minutu bez dvojtečky, například +0130. Tři písmena vypíše hodinu a minutu s dvojtečku, například +01:30. Čtyři písmena vypíše hodinu a minutu a volitelnou sekundu bez dvojtečky, například +013015. Pět písmen vypíše hodinu a minutu a volitelnou sekundu s dvojtečku, například +01:30:15. Šest nebo více písmen selže. Vzorové písmeno X (velké písmeno) bude výstupem "Z", pokud posun na výstup bude nula, zatímco písmeno vzoru x (malé) bude výstupem +00, +000 nebo +00:00.
Posun O: Naformátuje lokalizovaný posun na základě počtu vzorových písmen. Jedno písmeno vypíše krátkou formu lokalizovaného posunu, což je lokalizovaný text posunu, například GMT, s hodinou bez úvodní nuly, volitelnými 2cifernými minutami a sekundou, pokud není nula, a dvojtečka, například GMT+8. Čtyři písmena vypíše celý formulář, který je lokalizovaný text posunu, například GMT, s dvouciferným polem hodin a minut, volitelné druhé pole, pokud není nula, a dvojtečka, například GMT+08:00. Jakýkoli jiný počet písmen se nezdaří.
Odsazení Z: Formátuje posun na základě počtu vzorových písmen. Jedna, dvě nebo tři písmena vypíše hodinu a minutu bez dvojtečky, například +0130. Výstup je +0000, když je posun nula. Čtyři písmena vypíše úplnou formu lokalizovaného posunu, která odpovídá čtyřem písmenům posunu-O. Výstup je odpovídající lokalizovaný posun textu, pokud je posun nula. Pět písmen vypíše hodinu, minutu s volitelnou sekundou, pokud není nula, s dvojtečku. Výstupem je "Z", pokud je posun nula. Šest nebo více písmen selže.
Volitelný začátek a konec oddílu: Slouží
[]
k definování volitelného oddílu a možná vnořeného oddílu. Při formátování jsou všechna platná data výstupem, i když jsou v volitelné části. Během analýzy nemusí v analyzovaném řetězci chybět celý oddíl. Volitelný oddíl je zahájen[
a ukončen pomocí]
(nebo na konci vzoru).Symboly "E", "F", "q" a "Q" lze použít pouze pro formátování data a času, například
date_format
. Nejsou povoleny pro parsování data a času, např.to_timestamp
.