sql >> Databáze >  >> RDS >> SQLite

Platné formáty časových řetězců pro funkce data/času SQLite

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

  1. Získejte název volající procedury nebo funkce v Oracle PL/SQL

  2. Jak spravovat databázi pomocí Admineru

  3. Migrujte databázi z Postgresu do MySQL

  4. Jak v Redshift/Postgres počítat řádky, které splňují podmínku?