V MariaDB NOW()
je vestavěná funkce data a času, která vrací aktuální datum a čas.
Vrácená hodnota je vrácena v 'YYYY-MM-DD HH:MM:SS'
nebo YYYYMMDDHHMMSS.uuuuuu
formát, v závislosti na tom, zda je funkce použita v řetězcovém nebo číselném kontextu.
Vrácená hodnota je vyjádřena v aktuálním časovém pásmu.
Máte také možnost zadat přesnost na mikrosekundy.
Syntaxe
Syntaxe vypadá takto:
NOW([precision])
Kde precision
je volitelný argument, který určuje přesnost na mikrosekundy.
Má také následující synonyma:
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP([precision])
LOCALTIME
LOCALTIME([precision])
LOCALTIMESTAMP
LOCALTIMESTAMP([precision])
Příklad
Zde je příklad:
SELECT NOW();
Výsledek:
+---------------------+ | NOW() | +---------------------+ | 2021-05-09 10:12:39 | +---------------------+
Číselný kontext
Když NOW()
se používá v číselném kontextu, výsledek je v YYYYMMDDHHMMSS.uuuuuu
formát.
Příklad:
SELECT
NOW(),
NOW() + 0;
Výsledek:
+---------------------+----------------+ | NOW() | NOW() + 0 | +---------------------+----------------+ | 2021-05-09 10:13:10 | 20210509101310 | +---------------------+----------------+
Přesnost
Zde je příklad zadání přesnosti na mikrosekundy:
SELECT
NOW(6),
NOW(6) + 0;
Výsledek:
+----------------------------+-----------------------+ | NOW(6) | NOW(6) + 0 | +----------------------------+-----------------------+ | 2021-05-09 10:13:30.619522 | 20210509101330.619522 | +----------------------------+-----------------------+
Maximální hodnota pro přesnost na mikrosekundy je 6. Co se stane, když je pro přesnost předáno vyšší číslo:
SELECT NOW(12);
Výsledek:
ERROR 1426 (42000): Too big precision 12 specified for 'current_timestamp'. Maximum is 6
Synonyma
Jak je vidět ve výše uvedené syntaxi, existuje spousta synonym pro NOW()
.
Zde je příklad, který používá různá synonyma:
SELECT
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP(),
LOCALTIME,
LOCALTIME(),
LOCALTIMESTAMP,
LOCALTIMESTAMP();
Výsledek (při použití vertikálního výstupu):
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
Přidání k aktuálnímu časovému razítku
Existuje mnoho způsobů, jak provádět aritmetiku hodnot data a času v MariaDB.
Zde je příklad použití operátoru sčítání (+
), chcete-li k datu přidat 2 dny:
SELECT
NOW(),
NOW() + INTERVAL 2 DAY;
Výsledek:
+---------------------+------------------------+ | NOW() | NOW() + INTERVAL 2 DAY | +---------------------+------------------------+ | 2021-05-09 10:17:39 | 2021-05-11 10:17:39 | +---------------------+------------------------+
Viz také funkce jako DATE_ADD()
a ADDDATE()
pro alternativní způsob přidání k aktuálnímu datu.
Odečítání od aktuálního data
Zde je příklad použití operátoru odčítání (-
) pro odečtení 10 dnů od aktuálního data:
SELECT
NOW(),
NOW() - INTERVAL 10 DAY;
Výsledek:
+---------------------+-------------------------+ | NOW() | NOW() - INTERVAL 10 DAY | +---------------------+-------------------------+ | 2021-05-09 10:19:35 | 2021-04-29 10:19:35 | +---------------------+-------------------------+
Viz funkce jako DATE_SUB()
a SUBDATE()
pro alternativní způsob odečítání od aktuálního data.