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

Jak działa funkcja Date() w SQLite

SQLite ma funkcję date() funkcja, która umożliwia zwrócenie wartości daty na podstawie ciągu czasu i dowolnych modyfikatorów.

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

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 date() funkcja wygląda tak:

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

SELECT date('now');

Wynik:

2020-04-27

now ciąg czasu jest konwertowany na bieżącą datę i godzinę. Biorąc pod uwagę, że używam date() funkcja, zwracana jest tylko data.

Dodaj modyfikator

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

SELECT date('now', '+6 months');

Wynik:

2020-10-27

W tym przypadku dodałem sześć miesięcy do daty.

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 date('now', '+6 months', 'localtime');

Wynik:

2020-10-28

W moim przypadku localtime modyfikator powodował dodanie dnia do daty.

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.

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 date('2020-04-27 23:58:57');

Wynik:

2020-04-27 

W tym przypadku po prostu usuwa część czasu z daty.

I znowu, ale z pewnymi modyfikatorami.

SELECT date('2020-04-27 23:58:57', 'start of year', '+6 months');

Wynik:

2020-07-01 

W tym przypadku chciałem uzyskać datę, która wynosi 6 miesięcy od początku roku podanej daty.

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

SELECT date('2458967.49737293');

Wynik:

2020-04-27

data() a strftime()

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

SELECT 
  date('now'),
  strftime('%Y-%m-%d', 'now');

Wynik:

date('now')  strftime('%Y-%m-%d', 'now')
-----------  ---------------------------
2020-04-28   2020-04-28                 

Zakres dat

Podobnie jak w przypadku wszystkich funkcji daty i czasu SQLite, date() 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 sprawdzić bazę danych na nierootowanym urządzeniu z Androidem?

  2. dołącz do dwóch różnych kolumn tabeli sqlite3

  3. Budowanie aplikacji offline z wykorzystaniem Node.js i SQLite

  4. AUTOMATYCZNE WZROST SQLite

  5. Samouczek dotyczący biometrycznego uwierzytelniania odcisków palców na Androidzie