SQLite julianday()
funkcja zwraca liczbę dni od południa w Greenwich 24 listopada 4714 r. p.n.e. (przy użyciu proleptycznego kalendarza gregoriańskiego).
Jeśli używasz proleptycznego kalendarza juliańskiego, jest to poniedziałek, 1 stycznia 4713 pne.
Dzień juliański to ciągła liczba dni od początku okresu juliańskiego. Jest zwykle używany przez astronomów, oprogramowanie itp. do obliczania dni, które upłynęły między dwoma wydarzeniami.
Aby użyć tej funkcji, musisz podać ciąg czasu oraz wszelkie (opcjonalne) modyfikatory. Modyfikator umożliwia zmianę daty, na przykład dodanie liczby dni, ustawienie czasu lokalnego itp.
Składnia
Składnia wygląda tak:
julianday(timestring, modifier, modifier, ...)
timestring
argument musi być prawidłowym ciągiem czasu.
modifier
argumenty są opcjonalne. Możesz podać jeden lub więcej modyfikatorów. Jeśli podasz modyfikator, musi to być prawidłowy modyfikator.
Przykład
Oto przykład demonstrujący julianday()
funkcja używana z jednym argumentem.
SELECT julianday('now');
Wynik:
2458968.52391635
now
ciąg czasu jest konwertowany na dzień juliański.
Dodaj modyfikator
Możemy zmodyfikować poprzedni wynik za pomocą modyfikatora. Oto przykład.
SELECT julianday('now', '+3 hours');
Wynik:
2458968.65149612
Wiele modyfikatorów
Jak wspomniano, możesz dodać jeden lub więcej modyfikatorów. Oto przykład dodania kolejnego modyfikatora do poprzedniego przykładu.
SELECT julianday('now', '+3 hours', 'localtime');
Wynik:
2458969.0685371
julianday() kontra strftime()
julianday()
funkcja zwraca dokładnie ten sam wynik, co strftime('%J', ...)
zwroty. julianday()
funkcja jest po prostu wygodniejszym sposobem na zrobienie tego.
SELECT
julianday('now'),
strftime('%J', 'now');
Wynik:
julianday('now') strftime('%J', 'now') ---------------- --------------------- 2458968.52807836 2458968.528078356
Zakres dat
Podobnie jak w przypadku wszystkich funkcji daty i czasu SQLite, julianday()
działa tylko dla dat od 0000-01-01 00:00:00 do 9999-12-31 23:59:59 (numery Dnia Juliusza od 1721059.5 do 5373484.5).
W przypadku dat spoza tego zakresu wyniki są niezdefiniowane.