sql >> Databasteknik >  >> RDS >> SQLite

Hur JulianDay()-funktionen fungerar i SQLite

SQLite julianday() funktion returnerar antalet dagar sedan middagstid i Greenwich den 24 november 4714 f.Kr. (med den proleptiska gregorianska kalendern).

Om du använder den proleptiska julianska kalendern är detta måndagen den 1 januari 4713 f.Kr.

Julianska dagen är det kontinuerliga antalet dagar sedan början av den julianska perioden. Det används vanligtvis av astronomer, programvara etc för att beräkna förflutna dagar mellan två händelser.

För att använda den här funktionen måste du tillhandahålla en tidssträng, plus eventuella (valfria) modifierare. En modifierare låter dig ändra datumet, som att lägga till ett antal dagar, ställa in det på lokal tid, etc.

Syntax

Syntaxen ser ut så här:

julianday(timestring, modifier, modifier, ...)

timestring argumentet måste vara en giltig tidssträng.

modifier argument är valfria. Du kan tillhandahålla en eller flera modifierare. Om du tillhandahåller en modifierare måste den vara en giltig modifierare.

Exempel

Här är ett exempel för att demonstrera julianday() funktion som används med ett argument.

SELECT julianday('now');

Resultat:

2458968.52391635

now tidssträngen omvandlas till den julianska dagen.

Lägg till en modifierare

Vi kan modifiera det tidigare resultatet genom att använda en modifierare. Här är ett exempel.

SELECT julianday('now', '+3 hours');

Resultat:

2458968.65149612

Flera modifierare

Som nämnts kan du lägga till en eller flera modifierare. Här är ett exempel på att lägga till ytterligare en modifierare till föregående exempel.

SELECT julianday('now', '+3 hours', 'localtime');

Resultat:

2458969.0685371 

julianday() vs strftime()

julianday() funktion returnerar exakt samma resultat som strftime('%J', ...) returnerar. julianday() funktion är bara ett bekvämare sätt att göra det på.

SELECT 
  julianday('now'),
  strftime('%J', 'now');

Resultat:

julianday('now')  strftime('%J', 'now')
----------------  ---------------------
2458968.52807836  2458968.528078356    

Datumintervall

Som med alla SQLites datum- och tidsfunktioner, julianday() Fungerar endast för datum mellan 0000-01-01 00:00:00 och 9999-12-31 23:59:59 (Juliandagens nummer 1721059.5 till 5373484.5).

För datum utanför det intervallet är resultaten odefinierade.


  1. Hur man mappar en sträng till DB-sekvens i Hibernate

  2. IDLE timeout-parameter i Oracle

  3. Hur man undviker variabelsubstitution i Oracle SQL Developer med "trinidad &tobago"

  4. Gör fantastiska listor själv, eller GitHub som anteckningsbok