Dans MariaDB, NOW()
est une fonction de date et d'heure intégrée qui renvoie la date et l'heure actuelles.
La valeur renvoyée est renvoyée au format 'YYYY-MM-DD HH:MM:SS'
ou YYYYMMDDHHMMSS.uuuuuu
format, selon que la fonction est utilisée dans un contexte de chaîne ou numérique.
La valeur de retour est exprimée dans le fuseau horaire actuel.
Vous avez également la possibilité de spécifier la précision à la microseconde.
Syntaxe
La syntaxe ressemble à ceci :
NOW([precision])
Où precision
est un argument facultatif qui spécifie la précision à la microseconde.
Il a également les synonymes suivants :
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP([precision])
LOCALTIME
LOCALTIME([precision])
LOCALTIMESTAMP
LOCALTIMESTAMP([precision])
Exemple
Voici un exemple :
SELECT NOW();
Résultat :
+---------------------+ | NOW() | +---------------------+ | 2021-05-09 10:12:39 | +---------------------+
Contexte numérique
Quand NOW()
est utilisé dans un contexte numérique, le résultat est au format YYYYMMDDHHMMSS.uuuuuu
formater.
Exemple :
SELECT
NOW(),
NOW() + 0;
Résultat :
+---------------------+----------------+ | NOW() | NOW() + 0 | +---------------------+----------------+ | 2021-05-09 10:13:10 | 20210509101310 | +---------------------+----------------+
Précision
Voici un exemple de spécification d'une précision à la microseconde :
SELECT
NOW(6),
NOW(6) + 0;
Résultat :
+----------------------------+-----------------------+ | NOW(6) | NOW(6) + 0 | +----------------------------+-----------------------+ | 2021-05-09 10:13:30.619522 | 20210509101330.619522 | +----------------------------+-----------------------+
La valeur maximale pour la précision de la microseconde est de 6. Voici ce qui se passe lorsqu'un nombre plus élevé est passé pour la précision :
SELECT NOW(12);
Résultat :
ERROR 1426 (42000): Too big precision 12 specified for 'current_timestamp'. Maximum is 6
Synonymes
Comme on le voit dans la syntaxe ci-dessus, il existe un tas de synonymes pour NOW()
.
Voici un exemple qui utilise les différents synonymes :
SELECT
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP(),
LOCALTIME,
LOCALTIME(),
LOCALTIMESTAMP,
LOCALTIMESTAMP();
Résultat (en utilisant la sortie verticale) :
CURRENT_TIMESTAMP: 2021-05-09 10:24:53 CURRENT_TIMESTAMP(): 2021-05-09 10:24:53 LOCALTIME: 2021-05-09 10:24:53 LOCALTIME(): 2021-05-09 10:24:53 LOCALTIMESTAMP: 2021-05-09 10:24:53 LOCALTIMESTAMP(): 2021-05-09 10:24:53
Ajout à l'horodatage actuel
Il existe de nombreuses façons d'effectuer des opérations arithmétiques sur les valeurs datetime dans MariaDB.
Voici un exemple d'utilisation de l'opérateur d'addition (+
) pour ajouter 2 jours à la date :
SELECT
NOW(),
NOW() + INTERVAL 2 DAY;
Résultat :
+---------------------+------------------------+ | NOW() | NOW() + INTERVAL 2 DAY | +---------------------+------------------------+ | 2021-05-09 10:17:39 | 2021-05-11 10:17:39 | +---------------------+------------------------+
Voir aussi des fonctions comme DATE_ADD()
et ADDDATE()
pour une autre façon d'ajouter à la date actuelle.
Soustraction de la date actuelle
Voici un exemple d'utilisation de l'opérateur de soustraction (-
) pour soustraire 10 jours à la date actuelle :
SELECT
NOW(),
NOW() - INTERVAL 10 DAY;
Résultat :
+---------------------+-------------------------+ | NOW() | NOW() - INTERVAL 10 DAY | +---------------------+-------------------------+ | 2021-05-09 10:19:35 | 2021-04-29 10:19:35 | +---------------------+-------------------------+
Voir des fonctions comme DATE_SUB()
et SUBDATE()
pour une autre façon de soustraire de la date actuelle.