sql >> Database >  >> RDS >> SQLite

Hoe maak je een Datetime Format in SQLite

Probleem:

U wilt een datetime-kolom of -waarde opmaken in SQLite.

Voorbeeld:

Onze database heeft een tabel met de naam ticket met gegevens in de kolommen passenger_ID , train_number , en sale_datetime .

passenger_ID treinnummer 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

Laten we voor elke kaartverkoop de passagiers-ID, het treinnummer en de verkoopdatum en -tijd krijgen. We willen de verkoopdatum zo opmaken dat de dag, de maand en het jaar worden gescheiden door schuine strepen (/), met een komma tussen het jaar en de tijd. We willen alleen het uur en de minuut van de verkoop.

Dit is de vraag die u zou schrijven:

Oplossing:

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

Dit is het resultaat van de zoekopdracht:

passenger_ID treinnummer 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

Discussie:

Gebruik de STRFTIME() functie om data\time\datetime-gegevens op te maken in SQLite. Deze functie heeft twee argumenten. Het eerste argument is een opmaakstring die het datum/tijd-deelpatroon bevat. In ons voorbeeld gebruiken we de notatiereeks '%d/%m/%Y, %H:%M '. In deze string:

  • %d is een tweecijferige dag.
  • %m is een tweecijferige maand.
  • %Y is een jaartal van vier cijfers.
  • %H is een tweecijferig uur.
  • %M is een minuut van twee cijfers.

U kunt meer datum- en tijdspecificaties vinden in de SQLite-documentatie.

Het tweede argument is de tijd/datum/datum/tijd-waarde die moet worden opgemaakt. Dit kan een expressie zijn die een tijd/datum/datum/tijd-waarde retourneert of de naam van een tijd/datum/datum/tijd-kolom. (In ons voorbeeld is dit de kolom sale_datetime .)

STRFTIME() geeft de opgemaakte datum en tijd terug. In ons voorbeeld bevatten de opgemaakte datum en tijd geen seconden en worden de datumdelen gescheiden door schuine strepen (/) in plaats van streepjes (-).


  1. django.db.utils.ProgrammingError:relatie app_user bestaat niet tijdens de manage.py-test

  2. Is er een verschil tussen !=en <> in Oracle Sql?

  3. Databaseservices op AWS en Oracle Cloud Platform

  4. XMLType-knooppunten samenvoegen in Oracle-query