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()