Níže je uveden seznam platných formátů časových řetězců, které můžete použít v jakékoli funkci data a času v SQLite.
Časový řetězec | Příklad |
---|---|
RRRR-MM-DD | 2020-12-30 |
RRRR-MM-DD HH:MM | 2020-12-30 10:45 |
RRRR-MM-DD HH:MM:SS | 2020-12-30 10:45:07 |
RRRR-MM-DD HH:MM:SS.SSS | 2020-12-30 10:45:07.123 |
RRRR-MM-DD T HH:MM | 2020-12-30T10:45 |
RRRR-MM-DD T HH:MM:SS | 2020-12-30T10:45:07 |
RRRR-MM-DD T HH:MM:SS.SSS | 2020-12-30T10:45:07.123 |
HH:MM | 10:45 |
HH:MM:SS | 10:45:07 |
HH:MM:SS.SSS | 10:45:07.123 |
teď | 2020-12-30 10:45:07 |
DDDDDDDDDD | 2459213,94799769 |
now
time string vrací aktuální datum a čas pomocí Universal Coordinated Time (UTC).
DDDDDDDDDD
časový řetězec je juliánské číslo dne vyjádřené jako hodnota s pohyblivou řádovou čárkou.
Jak fungují časové řetězce?
Při použití kterékoli z funkcí data a času SQLite musíte zadat časový řetězec. Tento časový řetězec představuje datum/čas, kdy se pokoušíte naformátovat nebo provést operaci.
Časový řetězec, který zadáte, musí odpovídat jednomu z platných formátů ve výše uvedené tabulce.
Příklad kódu
Zde je základní příklad pro demonstraci několika časových řetězců ve výše uvedené tabulce.
.mode line
SELECT
datetime('2020-12-30'),
datetime('now'),
datetime('2459213.94799769');
Výsledek:
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
Ukazatel časového pásma
Všechny časové řetězce, které obsahují čas (například HH:MM, HH:MM:SS atd.), mohou také obsahovat indikátor časového pásma. To znamená všechny časové řetězce od řádku 2 do řádku 10 ve výše uvedené tabulce.
Indikátor časového pásma může mít tvar [+-]HH:MM
nebo jen Z
.
Z
přípona nic nemění, protože funkce data a času SQLite již interně používají čas UTC/zulu.
Jakékoli nenulové HH:MM
přípona se odečte od uvedeného data a času, aby se vypočítal čas zulu.
Příklad indikátorů časového pásma
Zde je několik příkladů k demonstraci.
SELECT
datetime('10:45Z'),
datetime('10:45+01:00'),
datetime('10:45-01:00');
Výsledek:
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