SQLite
 sql >> Database >  >> RDS >> SQLite

Data e ora di SQLite

Riepilogo :in questo tutorial, ti mostreremo come lavorare con i valori di data e ora di SQLite e utilizzare le funzioni di data e ora integrate per gestire i valori di data e ora.

SQLite non supporta la classe di archiviazione di data e/o ora incorporata. Al contrario, sfrutta alcune funzioni di data e ora integrate per utilizzare altre classi di archiviazione come TEXT , REAL o INTEGER per memorizzare i valori di data e ora.

Utilizzo del TEXT classe di archiviazione per la memorizzazione di data e ora SQLite

Se usi il TEXT classe di archiviazione per memorizzare il valore di data e ora, è necessario utilizzare il formato stringa ISO8601 come segue:

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

Ad esempio, 2016-01-01 10:20:05.123

Innanzitutto, crea una nuova tabella denominata datetime_text per la dimostrazione.

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

Provalo

La tabella contiene due colonne d1 e d2 con TEXT tipo di dati.

Per inserire i valori di data e ora nel datetime_text tabella, usi il DATETIME funzione.

Ad esempio, per ottenere il valore della data e dell'ora UTC corrente, si passa la stringa ora letterale alla funzione come segue:

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

Provalo

Per ottenere l'ora locale, si passa un argomento aggiuntivo localtime .

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

Provalo

In secondo luogo, inserisci i valori di data e ora in datetime_text tabella come segue:

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

Provalo

Terzo, interroga i dati da datetime_text tabella.

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

Provalo

Utilizzo di REAL classe storage per memorizzare i valori di data e ora di SQLite

Puoi usare il REAL classe di archiviazione per memorizzare i valori di data e/o ora come numeri del giorno giuliano, che è il numero di giorni trascorsi da mezzogiorno a Greenwich il 24 novembre 4714 a.C. basato sul prolettico calendario gregoriano.

Diamo un'occhiata a un esempio di utilizzo della classe di archiviazione REAL per memorizzare i valori di data e ora.

Innanzitutto, crea una nuova tabella denominata datetime_real .

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

Provalo

In secondo luogo, inserisci il valore di data e ora "corrente" in datetime_real tabella.

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

Provalo

Abbiamo usato julianday() funzione per convertire la data e l'ora correnti nel giorno giuliano.

Terzo, interroga i dati da datetime_real tabella.

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

Provalo

L'output non è leggibile dall'uomo.

Fortunatamente, puoi usare il built-in date() e time() funzioni per formattare un valore di data e ora come segue:

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

Provalo

Utilizzo di INTEGER per memorizzare i valori di data e ora di SQLite

Oltre a TEXT e REAL classi di archiviazione, puoi utilizzare INTEGER classe di archiviazione per memorizzare i valori di data e ora.

In genere utilizziamo INTEGER per memorizzare l'ora UNIX che è il numero di secondi trascorsi da 1970-01-01 00:00:00 UTC . Vedi il seguente esempio:

Innanzitutto, crea una tabella con una colonna il cui tipo di dati è INTEGER per memorizzare i valori di data e ora.

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

Provalo

In secondo luogo, inserisci il valore di data e ora corrente in datetime_int tabella.

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

Provalo

Terzo, interroga i dati da datetime_int tabella.

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

Provalo

È un numero intero.

Per formattare il risultato, puoi utilizzare il built-in datetime() funzionano come segue:

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

Provalo

Utilizzando SQLite, puoi scegliere liberamente qualsiasi tipo di dati per memorizzare i valori di data e ora e utilizzare la funzione di data e ora incorporata per convertire tra formati.

Per informazioni dettagliate sulle funzioni di date e orari di SQLite, controlla le funzioni di date e orari integrate.

In questo tutorial, hai imparato a usare il TEXT , REAL e INTEGER classi di archiviazione per memorizzare i valori di data e ora. Inoltre, hai imparato come utilizzare le funzioni di data e ora integrate per convertire i valori di data e ora memorizzati in formati leggibili.