Menu
Coddy logo textTech

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 :

  1. DATE() - Convertit une chaîne en date
  2. STRFTIME() - Formate les dates selon les paramètres spécifiés
  3. DATE('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 actuelle

Par exemple, extraire l'année, le mois et le jour d'une date :

-- 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 une combinaison de l'année et du jour (n'importe quel séparateur peut être utilisé)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Retourne : 2023:15

-- Utiliser un tiret comme séparateur à la place
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Retourne : 15-05-2023

-- Obtenir le jour de la semaine
SELECT STRFTIME('%w', '2023-05-15')
-- Retourne : 1 (Lundi ; Dimanche est 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éparation entre les spécificateurs (par ex. -, :, /). Par exemple, STRFTIME('%d-%m-%Y', date) et STRFTIME('%d:%m:%Y', date) combinent tous deux le jour, le mois et l'année — simplement avec des séparateurs différents.

Vous pouvez combiner ces fonctions dans des requêtes :

-- Trouver tous les enregistrements de l'année en cours
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

Défi

Facile

Tables 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 comme "DD-MM-YYYY". Nommez cette colonne formatted_start
  • La date de fin formatée comme "DD-MM-YYYY". Nommez cette colonne formatted_end
  • La durée en jours entre le début et la fin, arrondie au nombre entier le plus proche. Nommez cette colonne duration_days

Filtrez uniquement les lignes dont l'année de la colonne start est 2009 (STRFTIME() retourne une chaîne de caractères et non un nombre).

Triez les résultats par jours de durée par ordre décroissant.

Rappel : Pour calculer la différence entre les dates, utilisez : JULIANDAY(end) - JULIANDAY(start) et utilisez ROUND() pour arrondir aux nombres entiers.

Essayez vous-même

quiz iconTestez-vous

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