CURDATE

CURDATE()

Renvoie la date actuelle (type DATE) au format YYYY-MM-DD selon le fuseau horaire de la session. CURRENT_DATE et CURRENT_DATE() fonctionnent de la même façon.

Exemples

Les exemples avec les tables customers, products et orders utilisent la base de données d’exemple de la série Bases du SQL.

SELECT CURDATE() = CURRENT_DATE AS same, CURDATE() - INTERVAL 1 DAY < CURDATE() AS yesterday, CHAR_LENGTH(CURDATE()) AS len;
+------+-----------+-----+
| same | yesterday | len |
+------+-----------+-----+
|    1 |         1 |  10 |
+------+-----------+-----+

Les commandes de la base d’exemple par rapport à un « aujourd’hui » fixe – le nombre de jours depuis la commande :

SET @today = '2026-03-20';
SELECT id, order_date, DATEDIFF(@today, order_date) AS days_since_order
FROM orders
WHERE order_date >= @today - INTERVAL 30 DAY
ORDER BY order_date;
+----+------------+------------------+
| id | order_date | days_since_order |
+----+------------+------------------+
|  5 | 2026-02-20 |               28 |
|  6 | 2026-03-01 |               19 |
|  7 | 2026-03-15 |                5 |
+----+------------+------------------+

Points d’attention

  • Lors d’une comparaison d’une colonne DATETIME avec CURDATE(), la valeur de CURDATE() vaut minuit : created = CURDATE() ne trouve que les lignes à exactement 00:00:00. Pour « aujourd’hui », utilisez created >= CURDATE() AND created < CURDATE() + INTERVAL 1 DAY.
  • La date dépend du fuseau horaire de la session – autour de minuit, elle peut différer de la date en PHP.

Voir aussi :
NOW()
DATE()
CURTIME()