SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak działa funkcja DateTime() w SQLite

SQLite datetime() funkcja umożliwia zwrócenie wartości daty i godziny na podstawie ciągu czasu i dowolnych modyfikatorów.

Zwraca datę w następującym formacie:RRRR-MM-DD GG:MM:SS

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:

datetime(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 datetime() funkcja używana z jednym argumentem.

SELECT datetime('now');

Wynik:

2020-04-28 23:56:06

now ciąg czasu jest konwertowany na bieżącą datę i godzinę.

Dodaj modyfikator

Możemy zmodyfikować poprzedni wynik za pomocą modyfikatora. Oto przykład.

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

Wynik:

2020-04-29 02:56:52

W tym przypadku dodałem trzy godziny do czasu. Biorąc pod uwagę pierwotny czas, spowodowało to również przesunięcie daty na następny dzień.

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 datetime('now', '+3 hours', 'localtime');

Wynik:

2020-04-29 12:58:13

W moim przypadku localtime modyfikator spowodował przesunięcie czasu do przodu.

Powodem tego jest to, że 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.

Tutaj ponownie porównuje oryginalny czas lokalny ze zmodyfikowanym wynikiem:

SELECT 
  datetime('now', 'localtime') AS "Local",
  datetime('now', '+3 hours', 'localtime') AS "Modified";

Wynik:

Local                Modified           
-------------------  -------------------
2020-04-29 10:02:09  2020-04-29 13:02:09

Data 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.

Jeśli podasz tylko część daty, część czasu zostanie ustawiona na same zera.

SELECT datetime('2010-08-15');

Wynik:

2010-08-15 00:00:00

Jeśli podana jest tylko część czasu, data jest ustawiona na 2000-01-01.

SELECT datetime('23:58:57');

Wynik:

2000-01-01 23:58:57

Oto przykład, który używa dnia juliańskiego jako ciągu czasu.

SELECT datetime('2451545.49927083');

Wynik:

2000-01-01 23:58:57

datetime() a strftime()

datetime() funkcja zwraca dokładnie ten sam wynik, co strftime('%Y-%m-%d %H:%M:%S', ...) zwroty. datetime() funkcja jest po prostu wygodniejszym sposobem na zrobienie tego.

SELECT 
  datetime('now'),
  strftime('%Y-%m-%d %H:%M:%S', 'now');

Wynik:

datetime('now')      strftime('%Y-%m-%d %H:%M:%S', 'now')
-------------------  ------------------------------------
2020-04-29 00:16:12  2020-04-29 00:16:12                 

Zakres dat

Podobnie jak w przypadku wszystkich funkcji daty i czasu SQLite, datetime() 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaimplementować SQLCipher podczas korzystania z SQLiteOpenHelper

  2. Używanie Robolectric z SQLiteAssetHelper

  3. Jak zainstalować SQLite na macOS

  4. Autoinkrementacja klucza SQLite PRIMARY nie działa

  5. Umieszczanie danych kursora w tablicy