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

Datum a čas SQLite

Shrnutí :v tomto tutoriálu vám ukážeme, jak pracovat s hodnotami data a času SQLite a jak používat vestavěné funkce data a času ke zpracování hodnot data a času.

SQLite nepodporuje vestavěnou třídu ukládání data a/nebo času. Místo toho využívá některé vestavěné funkce data a času k použití jiných tříd úložiště, jako je TEXT , REAL nebo INTEGER pro uložení hodnot data a času.

Pomocí TEXT storage class pro ukládání data a času SQLite

Pokud použijete TEXT storage class pro uložení hodnoty data a času, musíte použít formát řetězce ISO8601 následovně:

YYYY-MM-DD HH:MM:SS.SSSCode language: SQL (Structured Query Language) (sql)

Například 2016-01-01 10:20:05.123

Nejprve vytvořte novou tabulku s názvem datetime_text pro demonstraci.

CREATE TABLE datetime_text(
   d1 text, 
   d2 text
);Code language: SQL (Structured Query Language) (sql)

Zkuste to

Tabulka obsahuje dva sloupce d1 a d2 s TEXT datový typ.

Chcete-li vložit hodnoty data a času do datetime_text tabulky, použijete DATETIME funkce.

Chcete-li například získat aktuální hodnotu data a času UTC, předáte funkci doslovný řetězec now takto:

SELECT datetime('now');Code language: SQL (Structured Query Language) (sql)

Zkuste to

Chcete-li získat místní čas, předáte další argument localtime .

SELECT datetime('now','localtime');Code language: SQL (Structured Query Language) (sql)

Zkuste to

Za druhé vložte hodnoty data a času do datetime_text tabulka takto:

INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));Code language: SQL (Structured Query Language) (sql)

Zkuste to

Za třetí, dotazujte se na data z datetime_text tabulka.

SELECT
	d1,
	typeof(d1),
	d2,
	typeof(d2)
FROM
	datetime_text;Code language: SQL (Structured Query Language) (sql)

Zkuste to

Pomocí REAL storage class pro ukládání hodnot data a času SQLite

Můžete použít REAL třída úložiště pro uložení hodnot data a/nebo času jako čísla juliánského dne, což je počet dní od poledne v Greenwichi 24. listopadu 4714 př. na základě proleptického gregoriánského kalendáře.

Podívejme se na příklad použití třídy úložiště REAL k ukládání hodnot data a času.

Nejprve vytvořte novou tabulku s názvem datetime_real .

CREATE TABLE datetime_real(
   d1 real
);Code language: SQL (Structured Query Language) (sql)

Zkuste to

Za druhé, vložte „aktuální“ hodnotu data a času do datetime_real tabulka.

INSERT INTO datetime_real (d1)
VALUES(julianday('now'));Code language: SQL (Structured Query Language) (sql)

Zkuste to

Použili jsme julianday() funkce pro převod aktuálního data a času na juliánský den.

Za třetí, dotazujte se na data z datetime_real tabulka.

SELECT d1 FROM datetime_real;Code language: SQL (Structured Query Language) (sql)

Zkuste to

Výstup není čitelný pro člověka.

Naštěstí můžete použít vestavěný date() a time() funkce pro formátování hodnoty data a času následovně:

SELECT
	date(d1),
	time(d1)
FROM
	datetime_real;Code language: SQL (Structured Query Language) (sql)

Zkuste to

Pomocí INTEGER k ukládání hodnot data a času SQLite

Kromě TEXT a REAL třídy úložiště, můžete použít INTEGER storage class pro uložení hodnot data a času.

Obvykle používáme INTEGER pro uložení času UNIX, což je počet sekund od 1970-01-01 00:00:00 UTC . Viz následující příklad:

Nejprve vytvořte tabulku s jedním sloupcem, jehož datový typ je INTEGER pro uložení hodnot data a času.

CREATE TABLE datetime_int (d1 int);Code language: SQL (Structured Query Language) (sql)

Zkuste to

Za druhé, vložte aktuální hodnotu data a času do datetime_int tabulka.

INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));Code language: SQL (Structured Query Language) (sql)

Zkuste to

Za třetí, dotazujte se na data z datetime_int tabulka.

SELECT d1 FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Zkuste to

Je to celé číslo.

K formátování výsledku můžete použít vestavěný datetime() fungovat následovně:

SELECT datetime(d1,'unixepoch')
FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Zkuste to

Pomocí SQLite si můžete libovolně vybrat libovolné datové typy pro uložení hodnot data a času a použít vestavěnou funkci data a času pro převod mezi formáty.

Chcete-li získat podrobné informace o funkcích data a času SQLite, podívejte se na vestavěné funkce data a času.

V tomto tutoriálu jste se naučili používat TEXT , REAL a INTEGER třídy úložiště pro ukládání hodnot data a času. Kromě toho jste se naučili, jak používat vestavěné funkce data a času k převodu uložených hodnot data a času do čitelných formátů.


  1. Referenční datový vzor:rozšiřitelný a flexibilní

  2. Co je databáze? Definice, typy a komponenty

  3. Hekaton s twistem:TVP v paměti – část 2

  4. Řádek SQL oddělený čárkami s klauzulí Seskupit podle