Handling Dates Part 3
Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 33 sur 72.
SQL fournit plusieurs fonctions utiles pour manipuler et formater les dates. Voici quelques fonctions de date courantes :
DATE()- Convertit une chaîne en dateSTRFTIME()- Formate les dates selon les paramètres spécifiésDATE('now')- Obtient la date actuelle :
Par exemple, convertir une chaîne en date :
SELECT DATE('2023-05-15 13:45:00')
-- Retourne : 2023-05-15
SELECT DATE('now')
-- Retourne la date actuellePar exemple, extraire l'année, le mois et le jour à partir de la date :
-- Get year
SELECT STRFTIME('%Y', '2023-05-15')
-- Returns: 2023
-- Get month
SELECT STRFTIME('%m', '2023-05-15')
-- Returns: 05
-- Get day
SELECT STRFTIME('%d', '2023-05-15')
-- Returns: 15
-- Show combination of year and day (any separator can be used)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Returns: 2023:15
-- Use a dash separator instead
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Returns: 15-05-2023
-- Get day of week
SELECT STRFTIME('%w', '2023-05-15')
-- Returns: 1 (Monday; Sunday is 0)Spécificateurs de format courants :
- %Y : Année (4 chiffres)
- %m : Mois (01-12)
- %d : Jour du mois (01-31)
- %w : Jour de la semaine (0-6, dimanche est 0)
- %H : Heure (00-23)
- %M : Minute (00-59)
- %S : Seconde (00-59)
Vous pouvez utiliser n’importe quel caractère de séparateur entre les spécificateurs (p. ex. -, :, /). Par exemple, STRFTIME('%d-%m-%Y', date) et STRFTIME('%d:%m:%Y', date) combinent tous deux jour, mois et année — juste avec des séparateurs différents.
Vous pouvez combiner ces fonctions dans les requêtes :
-- Find all records from current year
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')Défi
FacileTables et colonnes disponibles :
<strong>events</strong>:<strong>id</strong>,<strong>start</strong>,<strong>end</strong>
Écrivez une requête qui affiche :
- L'ID de l'événement
- La date de début formatée sous la forme « DD-MM-YYYY ». Appelez cette colonne
formatted_start - La date de fin formatée sous la forme « DD-MM-YYYY ». Appelez cette colonne
formatted_end - La durée en jours entre début et fin, arrondie à l'entier le plus proche. Appelez cette colonne
duration_days
Filtrez uniquement les lignes pour lesquelles l'année de la colonne start est 2009 (STRFTIME() retourne une chaîne et non un nombre).
Triez les résultats par durée en jours par ordre décroissant.
Rappel : Pour calculer la différence entre les dates, utilisez : JULIANDAY(end) - JULIANDAY(start) et utilisez ROUND() pour arrondir aux entiers.
Aide-mémoire
SQL fournit plusieurs fonctions utiles pour manipuler et formater les dates :
DATE()- Convertit une chaîne en une dateSTRFTIME()- Formate les dates selon des paramètres spécifiésDATE('now')- Obtient la date actuelle
Convertir une chaîne en date :
SELECT DATE('2023-05-15 13:45:00')
-- Retourne : 2023-05-15
SELECT DATE('now')
-- Retourne la date actuelleExtraire les parties de date en utilisant STRFTIME() :
-- Obtenir l'année
SELECT STRFTIME('%Y', '2023-05-15')
-- Retourne : 2023
-- Obtenir le mois
SELECT STRFTIME('%m', '2023-05-15')
-- Retourne : 05
-- Obtenir le jour
SELECT STRFTIME('%d', '2023-05-15')
-- Retourne : 15
-- Afficher la combinaison d'année et de jour
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Retourne : 2023:15Spécificateurs de format courants :
- %Y : Année (4 chiffres)
- %m : Mois (01-12)
- %d : Jour du mois (01-31)
- %H : Heure (00-23)
- %M : Minute (00-59)
- %S : Seconde (00-59)
Utilisation dans les clauses WHERE :
-- Trouver tous les enregistrements de l'année en cours
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')Calculer les différences de dates en utilisant JULIANDAY() :
JULIANDAY(end_date) - JULIANDAY(start_date)Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns