English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Date e Ora di SQLite

SQLite supporta le seguenti cinque funzioni di data e ora:

NumerofunzioneEsempio
1date(timestring, modifier, modifier, ...)Restituisce la data in formato YYYY-MM-DD.
2time(timestring, modifier, modifier, ...)Restituisce l'ora in formato HH:MM:SS.
3datetime(timestring, modifier, modifier, ...)Restituisce in formato YYYY-MM-DD HH:MM:SS.
4julianday(timestring, modifier, modifier, ...)Questo restituirà il numero di giorni a partire dal mezzogiorno del 24 novembre 4714 a.C. in tempo Greenwich.
5strftime(format, timestring, modifier, modifier, ...)Questo restituirà la data formattata in base alla stringa di formato specificata come primo parametro. Vedi di seguito per ulteriori dettagli sul formato.

Le cinque funzioni di data e ora menzionate di seguito prendono la stringa di tempo come parametro. La stringa di tempo può essere seguita da zero o più modificatori. La funzione strftime() può anche prendere la stringa di formato format come primo parametro. Di seguito, ti spiegherò in dettaglio diversi tipi di stringhe di tempo e modificatori.

Stringa di tempo

Una stringa di tempo può essere in uno dei seguenti formati:

NumeroStringa di tempoEsempio
1YYYY-MM-DD2010-12-30
2YYYY-MM-DD HH:MM2010-12-30 12:10
3YYYY-MM-DD HH:MM:SS.SSS2010-12-30 12:10:04.100
4MM-DD-YYYY HH:MM30-12-2010 12:10
5HH:MM12:10
6YYYY-MM-DDTHH:MM2010-12-30 12:10
7HH:MM:SS12:10:01
8YYYYMMDD HHMMSS20101230 121001
9now2013-05-07

Puoi usare "T" come carattere di separazione tra data e ora.

Modificatore(Modifier)

La stringa di tempo può essere seguita da zero o più modificatori, che cambieranno la data e/ora restituita dalle cinque funzioni menzionate di seguito. Qualsiasi delle cinque funzioni principali restituisce il tempo. I modificatori devono essere utilizzati da sinistra a destra, ecco una lista dei modificatori che possono essere utilizzati in SQLite:

  • NNN giorni

  • NNN ore

  • NNN minuti

  • NNN.NNNN secondi

  • NNN mesi

  • NNN anni

  • inizio del mese

  • inizio dell'anno

  • inizio del giorno

  • weekday N

  • unixepoch

  • localtime

  • utc

formattazione

SQLite fornisce funzioni molto utili strftime() Utilizzare il seguente formato per formattare qualsiasi data e ora. Puoi usare i seguenti sostituti per formattare data e ora:

SostituzioneDescrizione
%dGiorno del mese, 01-31
%fSecondi con parte decimale, SS.SSS
%HOra, 00-23
%jGiorno dell'anno, 001-366
%JGiorno giuliano, DDDD.DDDD
%mMese, 00-12
%MMinuti, 00-59
%sSecondi a partire dal 1970-01-01
%SSecondi, 00-59
%wGiorno della settimana, 0-6 (0 è domenica)
%WSettimana dell'anno, 01-53
%YAnno, YYYY
%%% simbolo

Esempio

Ora proviamo a utilizzare il prompt di SQLite per vari esempi. I seguenti comandi calcolano la data corrente.

sqlite> SELECT date('now');
2013-05-07

I seguenti comandi calcolano l'ultimo giorno del mese corrente.

sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31

I seguenti comandi calcolano la data e l'ora del timestamp UNIX 1092941466.

sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06

I seguenti comandi calcolano la data e l'ora del timestamp UNIX 1092941466, compensando il fuso orario locale.

sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06

I seguenti comandi calcolano il timestamp UNIX corrente.

sqlite> SELECT strftime('%s','now');
1393348134

I seguenti comandi calcolano i giorni dalla firma della Dichiarazione di Indipendenza degli Stati Uniti.

sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023

I seguenti comandi calcolano i secondi dal momento specifico del 2004.

sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572

I seguenti comandi calcolano la data del primo martedì della settimana di ottobre dell'anno corrente.

sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01

I seguenti comandi calcolano il tempo da UNIX in secondi (similmente a strftime('%s', 'now'), ma includono la parte decimale).

sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598

Per convertire i valori di UTC e localtime durante la formattazione della data, utilizzare i modificatori utc o localtime, come nell'esempio seguente:

sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00