SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona la funzione Time() in SQLite

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.