NOW

NOW(fsp)

Renvoie la date et l’heure actuelles (type DATETIME) dans le fuseau horaire de la session. Au sein d’une même instruction, elle donne toujours la même valeur – le moment où l’instruction a commencé. CURRENT_TIMESTAMP fonctionne de la même façon.

Paramètres

  • fsp – facultatif, le nombre de décimales des secondes (de 0 à 6).

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 DATE(NOW()) = CURDATE() AS today_date, CHAR_LENGTH(NOW()) AS no_fraction, CHAR_LENGTH(NOW(3)) AS with_milliseconds,
  NOW() = CURRENT_TIMESTAMP AS same;
+------------+-------------+-------------------+------+
| today_date | no_fraction | with_milliseconds | same |
+------------+-------------+-------------------+------+
|          1 |          19 |                23 |    1 |
+------------+-------------+-------------------+------+

Les commandes de plus de 30 jours (à compter de maintenant) :

SELECT COUNT(*) AS older_than_30_days
FROM orders
WHERE order_date < NOW() - INTERVAL 30 DAY;
+--------------------+
| older_than_30_days |
+--------------------+
|                  7 |
+--------------------+

Points d’attention

  • L’heure dépend du fuseau horaire de la session (time_zone) et non de PHP. Si PHP et la base fonctionnent dans des fuseaux différents, les heures diffèrent de plusieurs heures – réglez le même fuseau ou enregistrez l’heure depuis PHP.
  • Au sein d’une même instruction, NOW() ne change pas. SYSDATE() renvoie l’heure réelle au moment de l’appel, même au milieu d’une longue requête.
  • Comme valeur par défaut d’une colonne, utilisez DEFAULT CURRENT_TIMESTAMP, et pour l’heure de la dernière modification ON UPDATE CURRENT_TIMESTAMP.

Voir aussi :
CURDATE()
CURTIME()
DATE()
DATE_SUB()
UNIX_TIMESTAMP()