MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie NOW() in MariaDB funktioniert

In MariaDB NOW() ist eine integrierte Datums- und Zeitfunktion, die das aktuelle Datum und die aktuelle Uhrzeit zurückgibt.

Der Rückgabewert wird in 'YYYY-MM-DD HH:MM:SS' zurückgegeben oder YYYYMMDDHHMMSS.uuuuuu Format, abhängig davon, ob die Funktion in einem String- oder numerischen Kontext verwendet wird.

Der Rückgabewert wird in der aktuellen Zeitzone ausgedrückt.

Sie haben auch die Möglichkeit, die Mikrosekundengenauigkeit anzugeben.

Syntax

Die Syntax lautet wie folgt:

NOW([precision])

Wobei precision ist ein optionales Argument, das die Mikrosekundengenauigkeit angibt.

Es hat auch die folgenden Synonyme:

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

Beispiel

Hier ist ein Beispiel:

SELECT NOW();

Ergebnis:

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

Numerischer Kontext

Wenn NOW() in einem numerischen Kontext verwendet wird, steht das Ergebnis in YYYYMMDDHHMMSS.uuuuuu formatieren.

Beispiel:

SELECT
    NOW(),
    NOW() + 0;

Ergebnis:

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

Präzision

Hier ist ein Beispiel für die Angabe der Genauigkeit im Mikrosekundenbereich:

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

Ergebnis:

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

Der Maximalwert für die Mikrosekunden-Präzision ist 6. Folgendes passiert, wenn eine höhere Zahl für die Präzision übergeben wird:

SELECT NOW(12);

Ergebnis:

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

Synonyme

Wie in der obigen Syntax zu sehen ist, gibt es eine Reihe von Synonymen für NOW() .

Hier ist ein Beispiel, das die verschiedenen Synonyme verwendet:

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

Ergebnis (bei vertikaler Ausgabe):

  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

Hinzufügen zum aktuellen Zeitstempel

Es gibt viele Möglichkeiten, in MariaDB Arithmetik mit Datetime-Werten durchzuführen.

Hier ist ein Beispiel für die Verwendung des Additionsoperators (+ ), um 2 Tage zum Datum hinzuzufügen:

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

Ergebnis:

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

Siehe auch Funktionen wie DATE_ADD() und ADDDATE() für eine alternative Möglichkeit, das aktuelle Datum zu ergänzen.

Subtrahieren vom aktuellen Datum

Hier ist ein Beispiel für die Verwendung des Subtraktionsoperators (- ), um 10 Tage vom aktuellen Datum abzuziehen:

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

Ergebnis:

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

Siehe Funktionen wie DATE_SUB() und SUBDATE() für eine alternative Möglichkeit, vom aktuellen Datum abzuziehen.