Problem:
Du vill formatera en datetime-kolumn eller ett värde i SQLite.
Exempel:
Vår databas har en tabell som heter ticket med data i kolumnerna passenger_ID , train_number och sale_datetime .
| passagerar-ID | tågnummer | sale_datetime |
|---|---|---|
| 245NX | 4505 | 2019-10-17 12:56:30 |
| 127RG | 3403 | 2019-10-17 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 |
För varje biljettförsäljning, låt oss få passagerar-ID, tågnummer och försäljningsdatum och tid. Vi vill formatera försäljningsdatumet för att visa dag, månad och år separerade med snedstreck (/), med ett kommatecken mellan år och tid. Vi vill bara ha timmen och minuten för försäljningen.
Här är frågan du skulle skriva:
Lösning:
SELECT passenger_ID,
train_number,
STRFTIME('%d/%m/%Y, %H:%M', sale_datetime)
AS sale_formatted_datetime
FROM ticket;
Här är resultatet av frågan:
| passagerar-ID | tågnummer | 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 |
Diskussion:
Använd STRFTIME() funktion för att formatera datum\tid\datumtiddata i SQLite. Denna funktion tar två argument. Det första argumentet är en formatsträng som innehåller datum/tid delmönstret. I vårt exempel använder vi formatsträngen "%d/%m/%Y, %H:%M '. I denna sträng:
- %d är en tvåsiffrig dag.
- %m är en tvåsiffrig månad.
- %Y är ett fyrsiffrigt år.
- %H är en tvåsiffrig timme.
- %M är en tvåsiffrig minut.
Du kan hitta fler datum- och tidsspecifikationer i SQLite-dokumentationen.
Det andra argumentet är värdet för tid/datum/datumtid som ska formateras. Detta kan vara ett uttryck som returnerar ett värde för tid/datum/datumtid eller namnet på en kolumn tid/datum/datumtid. (I vårt exempel är det kolumnen sale_datetime .)
STRFTIME() returnerar formaterat datum och tid. I vårt exempel innehåller det formaterade datumet och tiden inte sekunder och datumdelarna är separerade med snedstreck (/) istället för bindestreck (-).