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.