SQLite ha un time()
funzione che consente di restituire un valore temporale basato su una stringa temporale e su eventuali modificatori.
Restituisce l'ora in questo formato:HH:MM:SS
Per utilizzare questa funzione, è necessario fornire una stringa di tempo, più eventuali modificatori (facoltativi). Un modificatore ti consente di modificare l'ora, ad esempio aggiungere un numero di ore, impostarla sull'ora locale, ecc
Sintassi
La sintassi di time()
la funzione va così:
time(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 di base per dimostrare il time()
funzione utilizzata con un argomento.
SELECT time('now');
Risultato:
03:47:36
Il now
la stringa dell'ora viene convertita nella data e nell'ora correnti. Dato che sto usando time()
funzione, viene restituita solo la parte temporale.
Aggiungi un modificatore
Possiamo modificare il risultato precedente usando un modificatore. Ecco un esempio.
SELECT time('now', '+5 hours');
Risultato:
08:48:24
In questo caso, ho aggiunto cinque ore al tempo.
Modificatori multipli
Come accennato, puoi aggiungere uno o più modificatori. Ecco un esempio di aggiunta di un altro modificatore all'esempio precedente.
SELECT time('now', '+5 hours', 'localtime');
Risultato:
18:50:08
L'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.
Stringa letterale come stringa temporale
Gli esempi precedenti usano now
come stringa dell'ora, ma puoi fornire qualsiasi stringa dell'ora valida.
Ecco alcuni altri esempi.
SELECT time('1999-12-18 17:10:23');
Risultato:
17:10:23
In questo caso rimuove semplicemente la parte della data dalla data.
time() vs strftime()
Il time()
la funzione restituisce esattamente lo stesso risultato che strftime('%H:%M:%S', ...)
ritorna. Il time()
funzione è solo un modo più conveniente per farlo.
SELECT
time('now'),
strftime('%H:%M:%S', 'now');
Risultato:
time('now') strftime('%H:%M:%S', 'now') ----------- --------------------------- 03:56:09 03:56:09
Intervallo di date
Come per tutte le funzioni di data e ora di SQLite, time()
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.