English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite supporta le seguenti cinque funzioni di data e ora:
Numero | funzione | Esempio |
---|---|---|
1 | date(timestring, modifier, modifier, ...) | Restituisce la data in formato YYYY-MM-DD. |
2 | time(timestring, modifier, modifier, ...) | Restituisce l'ora in formato HH:MM:SS. |
3 | datetime(timestring, modifier, modifier, ...) | Restituisce in formato YYYY-MM-DD HH:MM:SS. |
4 | julianday(timestring, modifier, modifier, ...) | Questo restituirà il numero di giorni a partire dal mezzogiorno del 24 novembre 4714 a.C. in tempo Greenwich. |
5 | strftime(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.
Una stringa di tempo può essere in uno dei seguenti formati:
Numero | Stringa di tempo | Esempio |
---|---|---|
1 | YYYY-MM-DD | 2010-12-30 |
2 | YYYY-MM-DD HH:MM | 2010-12-30 12:10 |
3 | YYYY-MM-DD HH:MM:SS.SSS | 2010-12-30 12:10:04.100 |
4 | MM-DD-YYYY HH:MM | 30-12-2010 12:10 |
5 | HH:MM | 12:10 |
6 | YYYY-MM-DDTHH:MM | 2010-12-30 12:10 |
7 | HH:MM:SS | 12:10:01 |
8 | YYYYMMDD HHMMSS | 20101230 121001 |
9 | now | 2013-05-07 |
Puoi usare "T" come carattere di separazione tra data e ora.
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
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:
Sostituzione | Descrizione |
---|---|
%d | Giorno del mese, 01-31 |
%f | Secondi con parte decimale, SS.SSS |
%H | Ora, 00-23 |
%j | Giorno dell'anno, 001-366 |
%J | Giorno giuliano, DDDD.DDDD |
%m | Mese, 00-12 |
%M | Minuti, 00-59 |
%s | Secondi a partire dal 1970-01-01 |
%S | Secondi, 00-59 |
%w | Giorno della settimana, 0-6 (0 è domenica) |
%W | Settimana dell'anno, 01-53 |
%Y | Anno, YYYY |
%% | % simbolo |
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