SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Funktionsweise der JulianDay()-Funktion in SQLite

Der SQLite julianday() Die Funktion gibt die Anzahl der Tage seit dem Mittag in Greenwich am 24. November 4714 v. (unter Verwendung des proleptischen gregorianischen Kalenders).

Bei Verwendung des proleptischen julianischen Kalenders ist dies Montag, der 1. Januar 4713 v. Chr.

Der Julianische Tag ist die fortlaufende Zählung der Tage seit Beginn der Julianischen Periode. Es wird normalerweise von Astronomen, Software usw. verwendet, um die vergangenen Tage zwischen zwei Ereignissen zu berechnen.

Um diese Funktion zu verwenden, müssen Sie eine Zeitzeichenfolge sowie alle (optionalen) Modifikatoren angeben. Mit einem Modifikator können Sie das Datum ändern, z. B. eine Anzahl von Tagen hinzufügen, es auf Ortszeit einstellen usw.

Syntax

Die Syntax lautet wie folgt:

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

Die timestring Das Argument muss eine gültige Zeitzeichenfolge sein.

Der modifier Argumente sind optional. Sie können einen oder mehrere Modifikatoren angeben. Wenn Sie einen Modifikator angeben, muss es sich um einen gültigen Modifikator handeln.

Beispiel

Hier ist ein Beispiel zur Demonstration von julianday() Funktion, die mit einem Argument verwendet wird.

SELECT julianday('now');

Ergebnis:

2458968.52391635

Der now Der Zeitstring wird in den Julianischen Tag umgewandelt.

Modifizierer hinzufügen

Wir können das vorherige Ergebnis mit einem Modifikator ändern. Hier ist ein Beispiel.

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

Ergebnis:

2458968.65149612

Mehrere Modifikatoren

Wie bereits erwähnt, können Sie einen oder mehrere Modifikatoren hinzufügen. Hier ist ein Beispiel für das Hinzufügen eines weiteren Modifikators zum vorherigen Beispiel.

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

Ergebnis:

2458969.0685371 

julianday() vs. strftime()

Der julianday() Funktion gibt genau dasselbe Ergebnis zurück wie strftime('%J', ...) kehrt zurück. Der julianday() Funktion ist nur ein bequemerer Weg, dies zu tun.

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

Ergebnis:

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

Zeitraum

Wie bei allen Datums- und Zeitfunktionen von SQLite ist julianday() funktioniert nur für Daten zwischen 0000-01-01 00:00:00 und 9999-12-31 23:59:59 (Julian Day Nummern 1721059.5 bis 5373484.5).

Für Daten außerhalb dieses Bereichs sind die Ergebnisse nicht definiert.