MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment NOW() fonctionne dans MariaDB

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

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.