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.