sql >> Databasteknik >  >> RDS >> SQLite

Hur man formaterar en Datetime i SQLite

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


  1. Spring Data JPA + Hibernate Hoppa över låsta rader (PostgreSQL)

  2. Återställa en postgres backup-fil med kommandoraden?

  3. Hur fixar man felaktiga strängvärdesfel?

  4. Prisma, hur man vänder ordningen