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