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

Come formattare un DateTime in SQLite

Problema:

Vuoi formattare una colonna o un valore datetime in SQLite.

Esempio:

Il nostro database ha una tabella denominata ticket con i dati nelle colonne passenger_ID , train_number e sale_datetime .

ID_passeggero numero_treno sale_datetime
245NX 4505 17-10-2019 12:56:30
127RG 3403 17-10-2019 11:45:23
567FH 4505 2019-10-18 12:40:32
230AP 6700 2019-10-18 13:20:20
118BB 3403 2019-10-18 13:13:13

Per ogni vendita di biglietti, otteniamo l'ID del passeggero, il numero del treno e la data e l'ora di vendita. Vogliamo formattare la data di vendita per mostrare il giorno, il mese e l'anno separati da barre (/), con una virgola tra l'anno e l'ora. Vogliamo solo l'ora e il minuto della vendita.

Ecco la domanda che scriveresti:

Soluzione:

SELECT passenger_ID,
  train_number,
  STRFTIME('%d/%m/%Y, %H:%M', sale_datetime)
  AS sale_formatted_datetime 
FROM ticket;

Ecco il risultato della query:

ID_passeggero numero_treno sale_formatted_datetime
245NX 4505 17/10/2019, 12:56
127RG 3403 17/10/2019, 11:45
567FH 4505 18/10/2019, 12:40
230AP 6700 18/10/2019, 13:20
118BB 3403 18/10/2019, 13:13

Discussione:

Usa STRFTIME() funzione per formattare i dati di data\ora\dataora in SQLite. Questa funzione accetta due argomenti. Il primo argomento è una stringa di formato contenente il modello della parte data/ora. Nel nostro esempio, utilizziamo la stringa di formato "%d/%m/%Y, %H:%M '. In questa stringa:

  • %d è un giorno a due cifre.
  • %m è un mese a due cifre.
  • %Y è un anno a quattro cifre.
  • %H è un'ora a due cifre.
  • %M è un minuto a due cifre.

Puoi trovare più specificatori di data e ora nella documentazione di SQLite.

Il secondo argomento è il valore di ora/data/data/ora da formattare. Può essere un'espressione che restituisce un valore di ora/data/data/ora o il nome di una colonna ora/data/data/ora. (Nel nostro esempio, è la colonna sale_datetime .)

STRFTIME() restituisce la data e l'ora formattate. Nel nostro esempio, la data e l'ora formattate non contengono secondi e le parti della data sono separate da barre (/) anziché da trattini (-).