sql >> Database teknologi >  >> RDS >> SQLite

SQLite dato og klokkeslæt funktioner

SQLite understøtter fem funktioner til at arbejde med datoer og klokkeslæt. Disse er:

  • date()
  • time()
  • datetime()
  • julianday()
  • strftime()

Alle disse funktioner accepterer en tidsstreng som et argument. De accepterer også andre argumenter for at ændre/formatere outputtet.

strftime() funktion er den mest alsidige funktion af de fem. Faktisk kan denne funktion alt, hvad de fire andre kan.

Med andre ord kan du bruge strftime() for alle dine dato- og tidsformateringskrav. De andre fire funktioner er udelukkende tilgængelige for nemheds skyld.

Syntaks

Syntaksen for hver funktion er som følger:

date(timestring, modifier, modifier, ...) time(timestring, modifier, modifier, ...) datetime(timestring, modifier, modifier, ...) julianday(timestring, modifier, modifier, ...) strftime(format, timestring, modifier, modifier, ...)

I de første fire funktioner er det første argument en tidsstreng, og alle efterfølgende argumenter er modifikatorer.

I strftime() funktion det første argument er formatstrengen efterfulgt af tidsstrengen og eventuelle modifikatorer.

Alle gyldige tidsstrenge og modifikatorer er angivet i bunden af ​​denne artikel.

Men lad os først gennemgå nogle hurtige eksempler på hver af disse funktioner.

Date()-funktionen

Du kan bruge date() funktion med et argument eller med flere argumenter.

Her er et eksempel med kun ét argument:

SELECT date('now'); 

Resultat:

2020-04-23

Her er et eksempel, der bruger en modifikator:

SELECT date('now', 'localtime'); 

Resultat:

2020-04-24

I dette tilfælde brugte jeg localtime modifikator. Denne modifikator antager, at tidsstrengen er i Universal Coordinated Time (UTC) og justerer tidsstrengen, så den viser lokal tid.

Time()-funktionen

time() Funktionen ligner date() funktion, bortset fra at den udsender klokkeslættet i stedet for datoen.

Her er et eksempel:

SELECT time('now'); 

Resultat:

00:02:05

Og her er det med localtime modifikator:

SELECT time('now', 'localtime'); 

Resultat:

10:02:09

Datetime()-funktionen

SQLite datetime() funktion kombinerer de to foregående funktioner i den forstand, at den udsender både dato og klokkeslæt.

Her er et eksempel:

SELECT datetime('now'); 

Resultat:

"2020-04-24 00:04:13"

Og her er det med localtime modifikator:

SELECT datetime('now', 'localtime'); 

Resultat:

"2020-04-24 10:04:46"

Funktionen julianday()

julianday() funktion returnerer det kontinuerlige antal dage siden begyndelsen af ​​den julianske periode, som er mandag den 1. januar 4713 f.Kr., proleptisk juliansk kalender (24. november 4714 f.Kr., i den proleptiske gregorianske kalender).

Sådan ser det ud ved at bruge now som tidsstreng:

SELECT julianday('now'); 

Resultat:

2458963.50964815

Og her bruger den localtime modifikator:

SELECT julianday('now', 'localtime'); 

Resultat:

2458963.92637685

Strftime()-funktionen

Som nævnt er strftime() funktion kan bruges til at udlæse dato- og tidsværdier i et hvilket som helst af de formater, der er tilgængelige i de tidligere funktioner.

Denne funktion giver dig mulighed for at være meget specifik med, hvordan dine dato/tidsværdier er formateret. Det giver dig mulighed for at angive det præcise format, som du ønsker det skal præsenteres.

Syntaksen for denne funktion ser sådan ud:

strftime(format, timestring, modifier, modifier, ...) 

Bemærk, at det første argument er format . Det er her, du angiver det format, som du ønsker, at tidsstrengen skal udskrives i.

Formatstrengen for strftime() kan bestå af en hvilken som helst af følgende erstatninger:

%d Dag i måneden:00
%f Brøksekunder:SS.SSS
%H Tid:00-24
%j Årets dag:001-366
%J Julians dagnummer
%m Måned:01-12
%M Minut:00-59
%s Sekunder siden 1970-01-01
%S Sekunder:00-59
%w Ugedag 0-6 med søndag==0
%W Uge i året:00-53
%Y År:0000-9999
%% %

Her er et eksempel:

SELECT strftime('%Y-%m-%d %H:%M:%S', 'now'); 

Resultat:

"2020-04-24 00:43:51"

I dette tilfælde får vi det samme resultat som ved brug af datetime() funktion.

Her er den med localtime modifikator:

SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime'); 

Resultat:

"2020-04-24 10:45:27"

Igen, samme resultat som med datetime() . Forskellen er strftime() sætter os i stand til eksplicit at angive formatet på outputtet.

For eksempel:

SELECT strftime('%d/%m/%Y %H:%M:%S', 'now', 'localtime');
SELECT strftime('%m/%d/%Y (%H:%M:%S)', 'now', 'localtime');
SELECT strftime('%H:%M:%S on %d/%m/%Y', 'now', 'localtime'); 

Resultat:

"24/04/2020 10:49:41""04/24/2020 (10:52:24)""10:51:13 den 24/04/2020"

Gyldige tidsstrengformater

Tidsstrengargumentet i alle dato/tidsfunktioner kan leveres i et af følgende formater:

  • ÅÅÅÅ-MM-DD
  • ÅÅÅÅ-MM-DD TT:MM
  • ÅÅÅÅ-MM-DD TT:MM:SS
  • ÅÅÅÅ-MM-DD TT:MM:SS.SSS
  • ÅÅÅÅ-MM-DDTHH:MM
  • ÅÅÅÅ-MM-DDTHH:MM:SS
  • ÅÅÅÅ-MM-DDTHH:MM:SS.SSS
  • TT:MM
  • TT:MM:SS
  • TT:MM:SS.SSS
  • nu
  • DDDDDDDDDD

Gyldige modifikatorer

Du kan bruge enhver af følgende modifikatorer med dato/tidsfunktioner:

  • NNN dage
  • NNN timer
  • NNN minutter
  • NNN.NNNN sekunder
  • NNN måneder
  • NNN år
  • begyndelsen af ​​måneden
  • start på året
  • start på dagen
  • ugedag N
  • unixepoch
  • lokal tid
  • utc

N refererer til et tal, der føjes til datoen, baseret på den angivne enhed.

For eksempel:

SELECT 
  date('now'), 
  date('now', '3 days'); 

Resultat:

date('now') date('now', '3 days')----------------------------- --2020-04-24 2020-04-27 

Her er en, der bruger start of month som modifikator:

SELECT 
  date('now'), 
  date('now', 'start of month'); 

Resultat:

date('now') date('now', 'start of month')----- ------------------ ----------2020-04-24 2020-04-01 

  1. Android:Sqlite-fejl - (1) nær null:syntaksfejl

  2. Genarranger / nulstil automatisk stigning i primærnøgle

  3. Hvordan tømmer jeg PRINT-bufferen i TSQL?

  4. Sikkerhedsovervejelser for MariaDB-implementeringer på Hybrid Cloud-miljø