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

Formati di stringa dell'ora validi per le funzioni di data/ora di SQLite

Di seguito è riportato un elenco di formati di stringhe temporali validi che puoi utilizzare in qualsiasi funzione di data e ora in SQLite.

Stringa temporale Esempio
AAAA-MM-GG 30-12-2020
AAAA-MM-GG HH:MM 30-12-2020 10:45
AAAA-MM-GG HH:MM:SS 30-12-2020 10:45:07
AAAA-MM-GG HH:MM:SS.SSS 30-12-2020 10:45:07.123
AAAA-MM-GG T HH:MM 2020-12-30T10:45
AAAA-MM-GG T HH:MM:SS 2020-12-30T10:45:07
AAAA-MM-GG T HH:MM:SS.SSS 2020-12-30T10:45:07.123
HH:MM 10:45
HH:MM:SS 10:45:07
HH:MM:SS.SSS 10:45:07.123
ora 30-12-2020 10:45:07
DDDDDDDDDDDD 2459213.94799769

Il now la stringa dell'ora restituisce la data e l'ora correnti utilizzando l'ora UTC (Universal Coordinated Time).

Il DDDDDDDDDD time string è il numero del giorno giuliano espresso come valore in virgola mobile.

Come funzionano le stringhe temporali?

Quando si utilizza una delle funzioni di data e ora di SQLite, è necessario fornire una stringa di tempo. Questa stringa temporale rappresenta la data/ora in cui stai tentando di formattare o eseguire l'operazione.

La stringa di tempo che fornisci deve rispettare uno dei formati validi nella tabella sopra.

Codice di esempio

Ecco un esempio di base per dimostrare alcune delle stringhe temporali nella tabella sopra.

.mode line
SELECT 
  datetime('2020-12-30'),
  datetime('now'),
  datetime('2459213.94799769');

Risultato:

      datetime('2020-12-30') = 2020-12-30 00:00:00
             datetime('now') = 2020-04-24 22:58:31
datetime('2459213.94799769') = 2020-12-30 10:45:07

Indicatore di fuso orario

Tutte le stringhe temporali che includono l'ora (come HH:MM, HH:MM:SS e così via) possono includere anche un indicatore di fuso orario. Ciò significa tutte le stringhe temporali dalla riga 2 alla riga 10 nella tabella sopra.

L'indicatore del fuso orario può assumere la forma [+-]HH:MM o semplicemente Z .

La Z il suffisso non cambia nulla, poiché le funzioni di data e ora di SQLite utilizzano già internamente l'ora UTC/zulu comunque.

Qualsiasi HH:MM diverso da zero il suffisso viene sottratto dalla data e dall'ora indicate per calcolare l'ora zulu.

Esempio di indicatori di fuso orario

Ecco alcuni esempi da dimostrare.

SELECT 
  datetime('10:45Z'),
  datetime('10:45+01:00'),
  datetime('10:45-01:00');

Risultato:

     datetime('10:45Z') = 2000-01-01 10:45:00
datetime('10:45+01:00') = 2000-01-01 09:45:00
datetime('10:45-01:00') = 2000-01-01 11:45:00