Poniżej znajduje się lista prawidłowych formatów ciągu znaków czasu, których można użyć w dowolnej funkcji daty i czasu w SQLite.
Ciąg czasu | Przykład |
---|---|
RRRR-MM-DD | 2020-12-30 |
RRRR-MM-DD GG:MM | 2020-12-30 10:45 |
RRRR-MM-DD GG:MM:SS | 2020-12-30 10:45:07 |
RRRR-MM-DD GG:MM:SS.SSS | 2020-12-30 10:45:07.123 |
RRRR-MM-DD T GG:MM | 2020-12-30T10:45 |
RRRR-MM-DD T GG:MM:SS | 2020-12-30T10:45:07 |
RRRR-MM-DD T GG:MM:SS.SSS | 2020-12-30T10:45:07.123 |
GG:MM | 10:45 |
GG:MM:SS | 10:45:07 |
GG:MM:SS.SSS | 10:45:07.123 |
teraz | 2020-12-30 10:45:07 |
DDDDDDDDDD | 2459213,94799769 |
now
łańcuch czasu zwraca bieżącą datę i godzinę przy użyciu uniwersalnego czasu koordynowanego (UTC).
DDDDDDDDDD
ciąg czasu to liczba dni juliańskich wyrażona jako wartość zmiennoprzecinkowa.
Jak działają ciągi czasu?
Używając dowolnej funkcji daty i czasu SQLite, musisz podać ciąg czasu. Ten ciąg czasu reprezentuje datę/godzinę, na której próbujesz sformatować lub wykonać operację.
Podany ciąg czasu musi być zgodny z jednym z prawidłowych formatów w powyższej tabeli.
Przykładowy kod
Oto podstawowy przykład demonstrujący kilka ciągów czasu w powyższej tabeli.
.mode line
SELECT
datetime('2020-12-30'),
datetime('now'),
datetime('2459213.94799769');
Wynik:
datetime('2020-12-30') = 2020-12-30 00:00:00 datetime('now') = 2020-04-24 22:58:31 datetime('2459213.94799769') = 2020-12-30 10:45:07
Wskaźnik strefy czasowej
Wszystkie ciągi czasowe zawierające godzinę (takie jak GG:MM, GG:MM:SS itp.) mogą również zawierać wskaźnik strefy czasowej. Oznacza to wszystkie ciągi czasowe od wiersza 2 do wiersza 10 w powyższej tabeli.
Wskaźnik strefy czasowej może mieć postać [+-]HH:MM
lub po prostu Z
.
Z
przyrostek niczego nie zmienia, ponieważ funkcje daty i czasu SQLite i tak już używają czasu UTC/zulu wewnętrznie.
Dowolny niezerowy HH:MM
przyrostek jest odejmowany od wskazanej daty i godziny w celu obliczenia czasu zulu.
Przykład wskaźników strefy czasowej
Oto kilka przykładów do zademonstrowania.
SELECT
datetime('10:45Z'),
datetime('10:45+01:00'),
datetime('10:45-01:00');
Wynik:
datetime('10:45Z') = 2000-01-01 10:45:00 datetime('10:45+01:00') = 2000-01-01 09:45:00 datetime('10:45-01:00') = 2000-01-01 11:45:00