SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment formater un Datetime dans SQLite

Problème :

Vous souhaitez formater une colonne ou une valeur datetime dans SQLite.

Exemple :

Notre base de données contient une table nommée ticket avec des données dans les colonnes passenger_ID , train_number , et sale_datetime .

passenger_ID train_number vente_dateheure
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

Pour chaque vente de billet, obtenons l'identifiant du passager, le numéro de train, ainsi que la date et l'heure de la vente. Nous voulons formater la date de vente pour afficher le jour, le mois et l'année séparés par des barres obliques (/), avec une virgule entre l'année et l'heure. Nous ne voulons que l'heure et la minute de la vente.

Voici la requête que vous écririez :

Solution :

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

Voici le résultat de la requête :

passenger_ID train_number vente_formatted_datetime
245NX 4505 17/10/2019, 12:56
127RG 3403 17/10/2019, 11h45
567FH 4505 18/10/2019, 12h40
230AP 6700 18/10/2019, 13h20
118BB 3403 18/10/2019, 13:13

Discussion :

Utilisez le STRFTIME() fonction pour formater les données date\time\datetime dans SQLite. Cette fonction prend deux arguments. Le premier argument est une chaîne de format contenant le modèle de partie date/heure. Dans notre exemple, nous utilisons la chaîne de format ‘%d/%m/%Y, %H:%M '. Dans cette chaîne :

  • %d est un jour à deux chiffres.
  • %m est un mois à deux chiffres.
  • %Y est une année à quatre chiffres.
  • %H est une heure à deux chiffres.
  • %M est une minute à deux chiffres.

Vous pouvez trouver plus de spécificateurs de date et d'heure dans la documentation SQLite.

Le deuxième argument est la valeur heure/date/dateheure à formater. Il peut s'agir d'une expression renvoyant une valeur heure/date/dateheure ou le nom d'une colonne heure/date/dateheure. (Dans notre exemple, il s'agit de la colonne sale_datetime .)

STRFTIME() renvoie la date et l'heure formatées. Dans notre exemple, la date et l'heure formatées ne contiennent pas de secondes et les parties de date sont séparées par des barres obliques (/) au lieu de tirets (-).