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.SSS
Code 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.