Menu
Coddy logo textTech

Gestion des dates – Partie 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 courantes de date :

  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 la 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 vaut 0)
  • %H : Heure (00-23)
  • %M : Minute (00-59)
  • %S : Seconde (00-59)

Vous pouvez utiliser n’importe quel caractère séparateur entre les spécificateurs (par exemple -, :, /). Par exemple, STRFTIME('%d-%m-%Y', date) et STRFTIME('%d:%m:%Y', date) combinent tous deux le jour, le mois et l’année, mais avec des séparateurs différents.

Vous pouvez combiner ces fonctions dans les 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 :

  • events : id, start, end

Écrivez une requête qui affiche :

  • L’ID de l’événement
  • La date de début au format "DD-MM-YYYY". Appelez cette colonne formatted_start
  • La date de fin au format "DD-MM-YYYY". Appelez cette colonne formatted_end
  • La durée en jours entre le début et la 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() renvoie 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 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

Entraînez-vous par vous-même : Playground SQL