MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona NOW() in MariaDB

In MariaDB, NOW() è una funzione di data e ora incorporata che restituisce la data e l'ora correnti.

Il valore restituito viene restituito in 'YYYY-MM-DD HH:MM:SS'YYYYMMDDHHMMSS.uuuuuu formato, a seconda che la funzione sia utilizzata in un contesto stringa o numerico.

Il valore restituito è espresso nel fuso orario corrente.

Hai anche la possibilità di specificare la precisione del microsecondo.

Sintassi

La sintassi è questa:

NOW([precision])

Dove precision è un argomento facoltativo che specifica la precisione del microsecondo.

Ha anche i seguenti sinonimi:

CURRENT_TIMESTAMP
CURRENT_TIMESTAMP([precision])
LOCALTIME
LOCALTIME([precision])
LOCALTIMESTAMP
LOCALTIMESTAMP([precision])

Esempio

Ecco un esempio:

SELECT NOW();

Risultato:

+---------------------+
| NOW()               |
+---------------------+
| 2021-05-09 10:12:39 |
+---------------------+

Contesto numerico

Quando NOW() viene utilizzato in un contesto numerico, il risultato è in YYYYMMDDHHMMSS.uuuuuu formato.

Esempio:

SELECT
    NOW(),
    NOW() + 0;

Risultato:

+---------------------+----------------+
| NOW()               | NOW() + 0      |
+---------------------+----------------+
| 2021-05-09 10:13:10 | 20210509101310 |
+---------------------+----------------+

Precisione

Ecco un esempio di specifica della precisione in microsecondi:

SELECT
    NOW(6),
    NOW(6) + 0;

Risultato:

+----------------------------+-----------------------+
| NOW(6)                     | NOW(6) + 0            |
+----------------------------+-----------------------+
| 2021-05-09 10:13:30.619522 | 20210509101330.619522 |
+----------------------------+-----------------------+

Il valore massimo per la precisione del microsecondo è 6. Ecco cosa succede quando viene passato un numero più alto per la precisione:

SELECT NOW(12);

Risultato:

ERROR 1426 (42000): Too big precision 12 specified for 'current_timestamp'. Maximum is 6

Sinonimi

Come si vede nella sintassi sopra, ci sono un sacco di sinonimi per NOW() .

Ecco un esempio che utilizza i vari sinonimi:

SELECT 
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP(),
    LOCALTIME,
    LOCALTIME(),
    LOCALTIMESTAMP,
    LOCALTIMESTAMP();

Risultato (usando l'output 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

Aggiunta al timestamp corrente

Ci sono molti modi per eseguire l'aritmetica sui valori datetime in MariaDB.

Ecco un esempio di utilizzo dell'operatore di addizione (+ ) per aggiungere 2 giorni alla data:

SELECT 
    NOW(),
    NOW() + INTERVAL 2 DAY;

Risultato:

+---------------------+------------------------+
| NOW()               | NOW() + INTERVAL 2 DAY |
+---------------------+------------------------+
| 2021-05-09 10:17:39 | 2021-05-11 10:17:39    |
+---------------------+------------------------+

Vedi anche funzioni come DATE_ADD() e ADDDATE() per un modo alternativo per aggiungere alla data corrente.

Sottrazione dalla data corrente

Ecco un esempio di utilizzo dell'operatore di sottrazione (- ) per sottrarre 10 giorni dalla data corrente:

SELECT 
    NOW(),
    NOW() - INTERVAL 10 DAY;

Risultato:

+---------------------+-------------------------+
| NOW()               | NOW() - INTERVAL 10 DAY |
+---------------------+-------------------------+
| 2021-05-09 10:19:35 | 2021-04-29 10:19:35     |
+---------------------+-------------------------+

Vedi funzioni come DATE_SUB() e SUBDATE() per un modo alternativo per sottrarre dalla data corrente.