SQLite ma funkcję time()
funkcja, która umożliwia zwrócenie wartości czasu na podstawie ciągu czasu i dowolnych modyfikatorów.
Zwraca czas w następującym formacie:GG:MM:SS
Aby użyć tej funkcji, musisz podać ciąg czasu oraz wszelkie (opcjonalne) modyfikatory. Modyfikator umożliwia zmianę czasu, na przykład dodanie liczby godzin, ustawienie czasu lokalnego itp.
Składnia
Składnia time()
funkcja wygląda tak:
time(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 podstawowy przykład demonstrujący time()
funkcja używana z jednym argumentem.
SELECT time('now');
Wynik:
03:47:36
now
ciąg czasu jest konwertowany na bieżącą datę i godzinę. Biorąc pod uwagę, że używam time()
funkcja, zwracana jest tylko część czasu.
Dodaj modyfikator
Możemy zmodyfikować poprzedni wynik za pomocą modyfikatora. Oto przykład.
SELECT time('now', '+5 hours');
Wynik:
08:48:24
W tym przypadku dodałem pięć godzin do czasu.
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 time('now', '+5 hours', 'localtime');
Wynik:
18:50:08
localtime
modyfikator zakłada, że podany ciąg czasu jest w uniwersalnym czasie koordynowanym (UTC). Następnie dostosowuje ciąg czasu tak, aby wyświetlał czas lokalny.
Dlatego możesz uzyskać inny wynik, w zależności od czasu lokalnego.
Literał ciągu jako ciąg czasu
Powyższe przykłady używają now
jako ciąg czasu, ale możesz podać dowolny prawidłowy ciąg czasu.
Oto kilka innych przykładów.
SELECT time('1999-12-18 17:10:23');
Wynik:
17:10:23
W takim przypadku po prostu usuwa część daty z daty.
time() a strftime()
time()
funkcja zwraca dokładnie ten sam wynik, co strftime('%H:%M:%S', ...)
zwroty. time()
funkcja jest po prostu wygodniejszym sposobem na zrobienie tego.
SELECT
time('now'),
strftime('%H:%M:%S', 'now');
Wynik:
time('now') strftime('%H:%M:%S', 'now') ----------- --------------------------- 03:56:09 03:56:09
Zakres dat
Podobnie jak w przypadku wszystkich funkcji daty i czasu SQLite, time()
działa tylko dla dat od 0000-01-01 00:00:00 do 9999-12-31 23:59:59 (dni juliańskie od 1721059.5 do 5373484.5).
W przypadku dat spoza tego zakresu wyniki są niezdefiniowane.