sql >> Database >  >> RDS >> SQLite

Hoe de functie JulianDay() werkt in SQLite

De SQLite julianday() functie retourneert het aantal dagen sinds het middaguur in Greenwich op 24 november 4714 v. Chr. (met behulp van de Proleptische Gregoriaanse kalender).

Als u de proleptische Juliaanse kalender gebruikt, is dit maandag 1 januari 4713 v.Chr.

Juliaanse dag is de continue telling van dagen sinds het begin van de Juliaanse periode. Het wordt meestal gebruikt door astronomen, software, enz. om de verstreken dagen tussen twee gebeurtenissen te berekenen.

Om deze functie te gebruiken, moet u een tijdreeks opgeven, plus eventuele (optionele) modifiers. Met een modifier kunt u de datum wijzigen, zoals een aantal dagen toevoegen, instellen op lokale tijd, enz.

Syntaxis

De syntaxis gaat als volgt:

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

De timestring argument moet een geldige tijdreeks zijn.

De modifier argumenten zijn optioneel. U kunt een of meer modifiers opgeven. Als je een modifier opgeeft, moet het een geldige modifier zijn.

Voorbeeld

Hier is een voorbeeld om de julianday() . te demonstreren functie wordt gebruikt met één argument.

SELECT julianday('now');

Resultaat:

2458968.52391635

De now tijdreeks wordt omgezet in de Juliaanse dag.

Een modificatie toevoegen

We kunnen het vorige resultaat wijzigen door een modifier te gebruiken. Hier is een voorbeeld.

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

Resultaat:

2458968.65149612

Meerdere modificaties

Zoals vermeld, kunt u een of meer modifiers toevoegen. Hier is een voorbeeld van het toevoegen van een andere modifier aan het vorige voorbeeld.

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

Resultaat:

2458969.0685371 

julianday() vs strftime()

De julianday() functie geeft exact hetzelfde resultaat als strftime('%J', ...) geeft terug. De julianday() functie is gewoon een handiger manier om het te doen.

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

Resultaat:

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

Datumbereik

Zoals met alle SQLite-datum- en tijdfuncties, julianday() werkt alleen voor datums tussen 0000-01-01 00:00:00 en 9999-12-31 23:59:59 (Julian Day-nummers 1721059.5 tot en met 5373484.5).

Voor datums buiten dat bereik zijn de resultaten niet gedefinieerd.


  1. Hoe wijzig ik de positie van een kolom in een PostgreSQL-databasetabel?

  2. SQL Inner Join

  3. Hoe TAN() werkt in MariaDB

  4. Logcat zegt ongeldige kolomgegevens1