V MariaDB, LOCALTIMESTAMP
a LOCALTIMESTAMP()
jsou synonyma pro NOW()
.
NOW()
funkce je vestavěná funkce data a času, která vrací aktuální datum a čas.
Čas je vrácen buď v 'YYYY-MM-DD HH:MM:SS'
nebo YYYYMMDDHHMMSS.uuuuuu
formát, v závislosti na tom, zda je funkce používána v řetězcovém nebo číselném kontextu.
Syntaxe
LOCALTIMESTAMP()
lze použít následujícími způsoby:
LOCALTIMESTAMP
LOCALTIMESTAMP([precision])
Kde precision
je mikrosekundová přesnost.
Alternativně můžete zavolat NOW()
takhle:
NOW([precision])
Příklad
Zde je příklad:
SELECT
LOCALTIMESTAMP,
LOCALTIMESTAMP(),
NOW();
Výsledek:
+---------------------+---------------------+---------------------+ | LOCALTIMESTAMP | LOCALTIMESTAMP() | NOW() | +---------------------+---------------------+---------------------+ | 2021-05-10 09:11:33 | 2021-05-10 09:11:33 | 2021-05-10 09:11:33 | +---------------------+---------------------+---------------------+
Vidíme, že všechny tři vrátí stejný výsledek.
Číselný kontext
Při použití v číselném kontextu je výsledný čas v YYYYMMDDHHMMSS.uuuuuu
formát.
Příklad:
SELECT
LOCALTIMESTAMP,
LOCALTIMESTAMP + 0,
LOCALTIMESTAMP() + 0;
Výsledek:
+---------------------+--------------------+----------------------+ | LOCALTIMESTAMP | LOCALTIMESTAMP + 0 | LOCALTIMESTAMP() + 0 | +---------------------+--------------------+----------------------+ | 2021-05-10 09:11:49 | 20210510091149 | 20210510091149 | +---------------------+--------------------+----------------------+
Přesnost
Při použití s LOCALTIMESTAMP([precision])
syntaxi, můžete zadat přesnost na mikrosekundy pro výsledek.
Příklad:
SELECT
LOCALTIMESTAMP(6),
LOCALTIMESTAMP(6) + 0;
Výsledek:
+----------------------------+-----------------------+ | LOCALTIMESTAMP(6) | LOCALTIMESTAMP(6) + 0 | +----------------------------+-----------------------+ | 2021-05-10 09:12:09.119326 | 20210510091209.119326 | +----------------------------+-----------------------+
Maximální hodnota pro přesnost na mikrosekundy je 6. Co se stane, když je pro přesnost předáno vyšší číslo:
SELECT LOCALTIMESTAMP(7);
Výsledek:
ERROR 1426 (42000): Too big precision 7 specified for 'current_timestamp'. Maximum is 6
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
LOCALTIMESTAMP,
LOCALTIMESTAMP + INTERVAL 2 DAY;
Výsledek:
+---------------------+---------------------------------+ | LOCALTIMESTAMP | LOCALTIMESTAMP + INTERVAL 2 DAY | +---------------------+---------------------------------+ | 2021-05-10 09:12:29 | 2021-05-12 09:12:29 | +---------------------+---------------------------------+
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
LOCALTIMESTAMP,
LOCALTIMESTAMP - INTERVAL 10 DAY;
Výsledek:
+---------------------+----------------------------------+ | LOCALTIMESTAMP | LOCALTIMESTAMP - INTERVAL 10 DAY | +---------------------+----------------------------------+ | 2021-05-10 09:12:45 | 2021-04-30 09:12:45 | +---------------------+----------------------------------+
Viz funkce jako DATE_SUB()
a SUBDATE()
pro alternativní způsob odečítání od aktuálního data.