SQLite datetime()
La funzione consente di restituire un valore di data e ora basato su una stringa di tempo e su eventuali modificatori.
Restituisce la data in questo formato:AAAA-MM-GG HH:MM:SS
Per utilizzare questa funzione, è necessario fornire una stringa di tempo, più eventuali modificatori (facoltativi). Un modificatore ti consente di modificare la data, ad esempio aggiungere un numero di giorni, impostarlo sull'ora locale, ecc
Sintassi
La sintassi è questa:
datetime(timestring, modifier, modifier, ...)
Il timestring
l'argomento deve essere una stringa di tempo valida.
Il modifier
gli argomenti sono facoltativi. Puoi fornire uno o più modificatori. Se fornisci un modificatore, deve essere un modificatore valido.
Esempio
Ecco un esempio per dimostrare il datetime()
funzione utilizzata con un argomento.
SELECT datetime('now');
Risultato:
2020-04-28 23:56:06
Il now
la stringa dell'ora viene convertita nella data e nell'ora correnti.
Aggiungi un modificatore
Possiamo modificare il risultato precedente usando un modificatore. Ecco un esempio.
SELECT datetime('now', '+3 hours');
Risultato:
2020-04-29 02:56:52
In questo caso, ho aggiunto tre ore al tempo. Data l'ora originale, ciò ha comportato anche lo spostamento della data in avanti al giorno successivo.
Modificatori multipli
Come accennato, puoi aggiungere uno o più modificatori. Ecco un esempio di aggiunta di un altro modificatore all'esempio precedente.
SELECT datetime('now', '+3 hours', 'localtime');
Risultato:
2020-04-29 12:58:13
Nel mio caso, il localtime
modificatore ha comportato lo spostamento dell'ora in avanti.
Il motivo per cui lo fa è perché localtime
modificatore presuppone che la stringa di tempo fornita sia in UTC (Universal Coordinated Time). Quindi regola la stringa dell'ora in modo da visualizzare l'ora locale.
Pertanto, potresti ottenere un risultato diverso, a seconda della tua ora locale.
Eccolo di nuovo confrontando l'ora locale originale con il risultato modificato:
SELECT
datetime('now', 'localtime') AS "Local",
datetime('now', '+3 hours', 'localtime') AS "Modified";
Risultato:
Local Modified ------------------- ------------------- 2020-04-29 10:02:09 2020-04-29 13:02:09
Data come stringa temporale
Gli esempi precedenti usano now
come stringa dell'ora, ma puoi fornire qualsiasi stringa dell'ora valida.
Se fornisci solo la parte relativa alla data, la parte temporale verrà impostata su tutti zeri.
SELECT datetime('2010-08-15');
Risultato:
2010-08-15 00:00:00
Se viene fornita solo la parte dell'ora, la data viene impostata su 01-01-2000.
SELECT datetime('23:58:57');
Risultato:
2000-01-01 23:58:57
Ecco un esempio che utilizza il giorno giuliano come stringa temporale.
SELECT datetime('2451545.49927083');
Risultato:
2000-01-01 23:58:57
datetime() vs strftime()
Il datetime()
la funzione restituisce esattamente lo stesso risultato che strftime('%Y-%m-%d %H:%M:%S', ...)
ritorna. Il datetime()
funzione è solo un modo più conveniente per farlo.
SELECT
datetime('now'),
strftime('%Y-%m-%d %H:%M:%S', 'now');
Risultato:
datetime('now') strftime('%Y-%m-%d %H:%M:%S', 'now') ------------------- ------------------------------------ 2020-04-29 00:16:12 2020-04-29 00:16:12
Intervallo di date
Come per tutte le funzioni di data e ora di SQLite, datetime()
funziona solo per le date comprese tra 0000-01-01 00:00:00 e 9999-12-31 23:59:59 (giuliano numeri da 1721059.5 a 5373484.5).
Per le date al di fuori di tale intervallo, i risultati non sono definiti.