Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

Fonction CURDATE() de MySQL

La fonction `CURDATE()` de MySQL renvoie la date du jour au format `YYYY-MM-DD`. Elle est couramment utilisée pour récupérer et comparer la date du jour dans les requêtes SQL.

Utilisation

La fonction `CURDATE()` est utilisée lorsque vous avez besoin de travailler avec la date du jour dans des opérations de données, telles que le filtrage d'enregistrements ou la définition de valeurs de date par défaut. Elle ne nécessite aucun argument et peut être utilisée dans les clauses `SELECT`, `INSERT`, `UPDATE`, et `WHERE`.

sql
CURDATE();

Cette syntaxe renvoie la date actuelle sous la forme d'une valeur de date.

Note : `CURDATE()` et `CURRENT_DATE()` sont synonymes et peuvent être utilisés de manière interchangeable.

Exemples

1. Récupération de base de la date actuelle

sql
SELECT CURDATE();

Cet exemple récupère simplement la date actuelle à partir de l'horloge système du serveur MySQL.

2. Utilisation de CURDATE() dans une clause WHERE

sql
SELECT order_id, order_date
FROM orders
WHERE order_date = CURDATE();

Dans cet exemple, `CURDATE()` est utilisé pour filtrer les commandes passées à la date du jour.

3. Insertion de la date du jour dans un tableau

sql
INSERT INTO attendance (employee_id, date_checked_in)
VALUES (123, CURDATE());

Ici, `CURDATE()` est utilisé pour insérer automatiquement la date du jour dans la colonne `date_checked_in` lorsqu'un nouvel enregistrement est ajouté.

4. Requête complexe avec arithmétique de date

sql
SELECT employee_id
FROM attendance
WHERE date_checked_in = DATE_SUB(CURDATE(), INTERVAL 1 DAY);

Cet exemple permet d'extraire les enregistrements des employés qui se sont présentés le jour précédant la date actuelle.

Conseils et bonnes pratiques

  • Veillez à la cohérence des fuseaux horaires. Assurez-vous que votre application et le serveur MySQL utilisent les mêmes paramètres de fuseau horaire afin d'éviter des résultats inattendus.
  • Utilisez `CURDATE()` pour les valeurs de type date uniquement. Si vous avez besoin de la date et de l'heure, utilisez plutôt `NOW()`.
  • Combinez avec les fonctions de date. Utilisez `CURDATE()` avec d'autres fonctions de date comme `DATE_ADD()` pour des calculs de date plus complexes.
  • Soyez conscient de la distribution implicite des rôles. Lors de la comparaison de `CURDATE()` avec des colonnes de type datetime, une distribution implicite peut se produire, ce qui peut affecter les performances. Pour optimiser, convertissez explicitement la colonne datetime en date en utilisant `CAST(datetime_column AS DATE)`.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement