SQLite julianday()
funktion returnerer antallet af dage siden middagstid i Greenwich den 24. november 4714 f.Kr. (ved hjælp af den proleptiske gregorianske kalender).
Hvis du bruger den proleptiske julianske kalender, er dette mandag den 1. januar 4713 f.Kr.
Juliansk dag er det kontinuerlige antal dage siden begyndelsen af den julianske periode. Det bruges typisk af astronomer, software osv. til at beregne forløbne dage mellem to begivenheder.
For at bruge denne funktion skal du angive en tidsstreng plus eventuelle (valgfri) modifikatorer. En modifikator giver dig mulighed for at ændre datoen, såsom tilføje et antal dage, indstille den til lokal tid osv.
Syntaks
Syntaksen ser sådan ud:
julianday(timestring, modifier, modifier, ...)
timestring
argumentet skal være en gyldig tidsstreng.
modifier
argumenter er valgfrie. Du kan angive en eller flere modifikatorer. Hvis du angiver en modifikator, skal den være en gyldig modifikator.
Eksempel
Her er et eksempel til at demonstrere julianday()
funktion, der bruges med ét argument.
SELECT julianday('now');
Resultat:
2458968.52391635
now
tidsstrengen konverteres til den julianske dag.
Tilføj en modifikator
Vi kan ændre det tidligere resultat ved at bruge en modifikator. Her er et eksempel.
SELECT julianday('now', '+3 hours');
Resultat:
2458968.65149612
Flere modifikatorer
Som nævnt kan du tilføje en eller flere modifikatorer. Her er et eksempel på tilføjelse af en anden modifikator til det forrige eksempel.
SELECT julianday('now', '+3 hours', 'localtime');
Resultat:
2458969.0685371
julianday() vs strftime()
julianday()
funktion returnerer nøjagtig det samme resultat som strftime('%J', ...)
vender tilbage. julianday()
funktion er bare en mere bekvem måde at gøre det på.
SELECT
julianday('now'),
strftime('%J', 'now');
Resultat:
julianday('now') strftime('%J', 'now') ---------------- --------------------- 2458968.52807836 2458968.528078356
Datointerval
Som med alle SQLite-dato- og tidsfunktioner, julianday()
virker kun for datoer mellem 0000-01-01 00:00:00 og 9999-12-31 23:59:59 (Julian Day-numre 1721059.5 til 5373484.5).
For datoer uden for dette interval er resultaterne udefinerede.