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 (-).