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

Data i godzina SQLite

Podsumowanie :w tym samouczku pokażemy, jak pracować z wartościami daty i czasu SQLite oraz jak używać wbudowanych funkcji dat i godzin do obsługi wartości daty i czasu.

SQLite nie obsługuje wbudowanej klasy przechowywania daty i/lub czasu. Zamiast tego wykorzystuje niektóre wbudowane funkcje daty i czasu do korzystania z innych klas pamięci, takich jak TEXT , REAL lub INTEGER do przechowywania wartości daty i czasu.

Korzystanie z TEXT klasa pamięci do przechowywania daty i czasu SQLite

Jeśli używasz TEXT klasa pamięci do przechowywania wartości daty i godziny, musisz użyć formatu ciągu ISO8601 w następujący sposób:

YYYY-MM-DD HH:MM:SS.SSSCode language: SQL (Structured Query Language) (sql)

Na przykład 2016-01-01 10:20:05.123

Najpierw utwórz nową tabelę o nazwie datetime_text do demonstracji.

CREATE TABLE datetime_text(
   d1 text, 
   d2 text
);Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Tabela zawiera dwie kolumny d1 i d2 z TEXT typ danych.

Aby wstawić wartości daty i czasu do datetime_text tabeli, użyj DATETIME funkcja.

Na przykład, aby uzyskać aktualną wartość daty i czasu UTC, przekazujesz do funkcji ciąg literowy now:

SELECT datetime('now');Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Aby uzyskać czas lokalny, przekazujesz dodatkowy argument localtime .

SELECT datetime('now','localtime');Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Po drugie, wstaw wartości daty i godziny do datetime_text tabela w następujący sposób:

INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Po trzecie, zapytaj o dane z datetime_text tabela.

SELECT
	d1,
	typeof(d1),
	d2,
	typeof(d2)
FROM
	datetime_text;Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Korzystanie z REAL klasa pamięci do przechowywania wartości daty i czasu SQLite

Możesz użyć REAL klasa pamięci do przechowywania wartości daty i/lub czasu jako liczby dni juliańskich, czyli liczba dni od południa w Greenwich 24 listopada 4714 r. p.n.e. na podstawie proleptycznego kalendarza gregoriańskiego.

Rzućmy okiem na przykład użycia klasy pamięci REAL do przechowywania wartości daty i czasu.

Najpierw utwórz nową tabelę o nazwie datetime_real .

CREATE TABLE datetime_real(
   d1 real
);Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Po drugie, wstaw „bieżącą” wartość daty i czasu do datetime_real tabela.

INSERT INTO datetime_real (d1)
VALUES(julianday('now'));Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Użyliśmy julianday() funkcja konwersji bieżącej daty i godziny na dzień juliański.

Po trzecie, zapytaj o dane z datetime_real tabela.

SELECT d1 FROM datetime_real;Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Dane wyjściowe nie są czytelne dla człowieka.

Na szczęście możesz użyć wbudowanej funkcji date() i time() funkcje do formatowania wartości daty i czasu w następujący sposób:

SELECT
	date(d1),
	time(d1)
FROM
	datetime_real;Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Korzystanie z INTEGER do przechowywania wartości daty i czasu SQLite

Poza TEXT i REAL klasy pamięci, możesz użyć INTEGER klasa pamięci do przechowywania wartości daty i czasu.

Zwykle używamy INTEGER do przechowywania czasu UNIX, który jest liczbą sekund od 1970-01-01 00:00:00 UTC . Zobacz następujący przykład:

Najpierw utwórz tabelę, która ma jedną kolumnę, której typ danych to INTEGER do przechowywania wartości daty i czasu.

CREATE TABLE datetime_int (d1 int);Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Po drugie, wstaw bieżącą datę i godzinę do datetime_int tabela.

INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Po trzecie, zapytaj o dane z datetime_int tabela.

SELECT d1 FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Wypróbuj

To liczba całkowita.

Aby sformatować wynik, możesz użyć wbudowanej funkcji datetime() działają w następujący sposób:

SELECT datetime(d1,'unixepoch')
FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Korzystając z SQLite, możesz swobodnie wybierać dowolne typy danych do przechowywania wartości daty i czasu oraz korzystać z wbudowanej funkcji dat i godzin do konwersji między formatami.

Aby uzyskać szczegółowe informacje na temat funkcji dat i godzin SQLite, sprawdź wbudowane funkcje dat i godzin.

W tym samouczku nauczyłeś się korzystać z TEXT , REAL i INTEGER klasy pamięci do przechowywania wartości daty i czasu. Ponadto nauczyłeś się korzystać z wbudowanych funkcji dat i godzin do konwertowania zapisanych wartości daty i godziny na czytelne formaty.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Automatycznie generuj klucz złożony w SQLite

  2. Usunąć wiele wierszy przy użyciu identyfikatorów?

  3. 6 sposobów na wybranie zduplikowanych wierszy w SQLite

  4. UNIKALNE wiązanie SQLite

  5. Zapytanie SQLite dla systemu Android — Pobieranie ostatnich 10 rekordów