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

Sådan fungerer JulianDay()-funktionen i SQLite

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.


  1. Sådan får du den aktuelle dato og tid (uden tidszone) i PostgreSQL

  2. MySQL Tutorial - En begyndervejledning til at lære MySQL

  3. Serienumre pr. gruppe af rækker for sammensat nøgle

  4. Tildeling af billeder til ListView-elementer Tutorial-03