Databricks SQL datum/tijd-patronen

Er zijn verschillende veelvoorkomende scenario's voor datum/tijd-gebruik in Databricks SQL:

  • CSV- en JSON-gegevensbronnen gebruiken de patroonreeks voor het parseren en opmaken van datum/tijd-inhoud.
  • Datum/tijd-functies met betrekking tot STRING converteren naar en van DATE of TIMESTAMP . Bijvoorbeeld , unix_timestampdate_format , , , , to_unix_timestamp , , from_unixtime , to_dateto_timestampfrom_utc_timestampto_utc_timestamp .

Databricks SQL patroonletters in de volgende tabel gebruiken voor het parseren en opmaken van datum- en tijdstempels:

Symbool Betekenis Stijl Voorbeelden
G Tijdperk tekst AD; Anno Domini
Y jaar jaar 2020; 20
D dag van het jaar number(3) 189
M/L maand van het jaar maand 7; 07; Jul; Juli
d dag van de maand number(3) 28
Q/q kwartaal van het jaar getal/tekst 3; 03; Kwartaal 3; Derde kwartaal
E dag van de week tekst Tue; Dinsdag
F uitgelijnde dag van de week in maand number(1) 3
A am-pm-of-day am-pm PM
h clock-hour-of-am-pm (1-12) number(2) 12
K uur-van-de-am-pm (0-11) number(2) 0
K clock-hour-of-day (1-24) number(2) 0
H uur van de dag (0-23) number(2) 0
m minuut van het uur number(2) 30
s seconde van de minuut number(2) 55
S fraction-of-second fraction 978
V tijdzone-id zone-id Amerika/Los_Angeles; Z; -08:30
Z tijdzonenaam zone-name Pacific Standard Time; PST
O gelokaliseerde zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00;
X zone-offset 'Z' voor nul 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 voor tekst scheidingsteken
‘’ enkele prijsopgave Letterlijke
[ optionele sectie starten
] optionele sectie einde

Het aantal patroonletters bepaalt de indeling.

  • Tekst: De tekststijl wordt bepaald op basis van het aantal gebruikte patroonletters. Voor minder dan 4 patroonletters wordt de korte tekst gebruikt, meestal een afkorting, bijvoorbeeld de maandag op dag van de week kan 'ma' zijn. Precies vier patroonletters gebruiken het volledige tekstformulier, meestal de volledige beschrijving, bijvoorbeeld de maandag op de dag van de week kan 'maandag' zijn. Vijf of meer letters mislukken.

  • Number(n): de n hier vertegenwoordigt het maximumaantal letters dat dit type datum/tijd-patroon kan worden gebruikt. Als het aantal letters één is, wordt de waarde uitgevoerd met behulp van het minimale aantal cijfers en zonder opvulling. Anders wordt het aantal cijfers gebruikt als de breedte van het uitvoerveld, met de waarde nul opgevuld indien nodig.

  • Getal/tekst: als het aantal patroonletters 3 of hoger is, gebruikt u de bovenstaande tekstregels. Gebruik anders de bovenstaande nummerregels.

  • Breuk: gebruik een of meer (maximaal 9) aaneengesloten tekens, bijvoorbeeld , om de seconde te 'S'SSSSSS parseren en op te maken. Voor parseren kan de acceptabele breuklengte [1, het aantal aaneengesloten 'S'] zijn. Voor opmaak wordt de breuklengte opgevuld naar het aantal aaneengesloten 'S' met nullen. Databricks SQL ondersteuning voor datum/tijd van micro-van-seconde precisie, die maximaal 6 significante cijfers heeft, maar nano-van-seconde kan parseren met een overschreden deel afgekapt.

  • Jaar: Het aantal letters bepaalt de minimale veldbreedte waaronder opvulling wordt gebruikt. Als het aantal letters twee is, wordt een gereduceerd formulier met twee cijfers gebruikt. Voor afdrukken worden hiermee de meest rechtse twee cijfers uitgevoerd. Voor parseren wordt deze geparseert met behulp van de basiswaarde 2000, wat resulteert in een jaar binnen het bereik van 2000 tot 2099. Als het aantal letters kleiner is dan vier (maar niet twee), wordt het teken alleen uitgevoerd voor negatieve jaren. Anders wordt het teken uitgevoerd als de padbreedte wordt overschreden wanneer 'G' niet aanwezig is. 7 of meer letters mislukken.

  • Maand: Deze volgt de regel getal/tekst. Het tekstformulier is afhankelijk van letters. Dit geeft het standaardformulier aan 'M' en is voor het formulier 'L' 'stand-alone'. Deze twee formulieren verschillen alleen in bepaalde talen. In het Russisch is 'Ииии' bijvoorbeeld de op zichzelf staande vorm van juli en 'Ииии' het standaardformulier. Hier volgen voorbeelden voor alle ondersteunde patroonletters:

    • 'M' of 'L' : Maandnummer in een jaar vanaf 1. Er is geen verschil tussen 'M' en 'L' . Maand tussen 1 en 9 wordt afgedrukt zonder opvulling.

      select date_format(date '1970-01-01', "M");
      1
      select date_format(date '1970-12-01', "L");
      12
      
    • 'MM' of 'LL' : Maandnummer in een jaar vanaf 1. Nul opvulling wordt toegevoegd voor maand 1-9.

      select date_format(date '1970-1-01', "LL");
      01
      select date_format(date '1970-09-01', "MM");
      09
      
    • 'MMM': Korte tekstweergave in het standaardformulier. Het maandpatroon moet deel uitmaken van een datumpatroon, niet alleen een stand-alone maand, met uitzondering van land/landen waar er geen verschil is tussen stand-and-alone formulieren zoals in het Engels.

      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': Korte tekstweergave in de stand-alone vorm. Het moet worden gebruikt om alleen maanden zonder andere datumvelden te formatteren/parseren.

      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': volledige tekstuele maandweergave in het standaardformulier. Deze wordt gebruikt voor het parseren/opmaken van maanden als onderdeel van datums/tijdstempels.

      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': volledige tekstuele maandweergave in de stand-alone vorm. Het patroon kan worden gebruikt om alleen maanden te formatteren/parseren.

      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: Hiermee wordt de am-pm-of-day uitgevoerd. Het aantal patroonletters moet 1 zijn.

  • Zone-id(V): hiermee wordt de tijdzone-id weergegeven. Het aantal patroonletters moet 2 zijn.

  • Zonenamen(z): hiermee wordt de tekstuele weergavenaam van de tijdzone-id uitgevoerd. Als het aantal letters één, twee of drie is, is de korte naam uitvoer. Als het aantal letters vier is, wordt de volledige naam uitgevoerd. Vijf of meer letters mislukken.

  • Offset X en x: hiermee wordt de offset opgemaakt op basis van het aantal patroonletters. Eén letter geeft alleen het uur weer, zoals '+01', tenzij de minuut niet nul is. In dat geval wordt de minuut ook uitgevoerd, zoals +0130. Met twee letters worden het uur en de minuut uitgevoerd, zonder dubbele punt, zoals +0130. Met drie letters worden het uur en de minuut uitgevoerd, met een dubbele punt, zoals +01:30. Vier letters geven het uur en de minuut en optionele seconde als uitvoer, zonder dubbele punt, zoals '+013015'. Vijf letters geven het uur en de minuut en optionele seconde als uitvoer, met een dubbele punt, zoals +01:30:15. Zes of meer letters mislukken. Met de patroonletter 'X' (hoofdletter) wordt 'Z' uitgevoerd wanneer de offset die als uitvoer moet worden uitgevoerd nul zou zijn, terwijl de patroonletter 'x' (kleine letters) '+00', '+0000' of '+00:00' uitvoer.

  • Offset O: hiermee wordt de gelokaliseerde offset opgemaakt op basis van het aantal patroonletters. Met één letter wordt de korte vorm van de gelokaliseerde offset uitgevoerd. Dit is gelokaliseerde offsettekst, zoals GMT, met uur zonder voorvoernest, optionele minuut van 2 cijfers en seconde als dit niet nul is, en dubbele punt, bijvoorbeeld GMT+8. Vier letters geven de volledige vorm weer. Dit is gelokaliseerde offsettekst, zoals GMT, met veld van 2 cijfers voor uur en minuut, optioneel tweede veld als niet-nul en dubbele punt, bijvoorbeeld GMT+08:00. Elk ander aantal letters mislukt.

  • Offset Z: hiermee wordt de offset opgemaakt op basis van het aantal patroonletters. Met één, twee of drie letters worden het uur en de minuut uitgevoerd, zonder dubbele punt, zoals +0130. De uitvoer is '+0000' wanneer de offset nul is. Vier letters leveren de volledige vorm van gelokaliseerde offset, gelijk aan vier letters van Offset-O. De uitvoer is de bijbehorende gelokaliseerde offsettekst als de offset nul is. Vijf letters leveren het uur, de minuut, met optionele seconde als deze niet nul is, met dubbele punt. De uitvoer is 'Z' als de offset nul is. Zes of meer letters mislukken.

  • Optionele sectie starten en beëindigen: gebruik [] om een optionele sectie te definiëren en mogelijk genest. Tijdens het opmaken worden alle geldige gegevens uitgevoerd, zelfs in de optionele sectie. Tijdens het parseren ontbreekt mogelijk de hele sectie in de geparseerde tekenreeks. Een optionele sectie wordt gestart [ door en beëindigd met behulp van ] (of aan het einde van het patroon).

  • Symbolen van 'E', 'F', 'q' en 'Q' kunnen alleen worden gebruikt voor datum/tijd-opmaak, bijvoorbeeld date_format . Ze zijn niet toegestaan voor het parseren van datum/tijd, bijvoorbeeld to_timestamp .