V MariaDB, TIMESTAMP() je vestavěná funkce data a času, která vrací hodnotu datetime na základě svého argumentu/ů.
Lze jej použít s jedním nebo dvěma argumenty následovně:
- Při použití s jedním argumentem vrátí daný výraz datum nebo datum a čas jako hodnotu datetime.
- Při použití se dvěma argumenty přidá druhý argument (čas) k prvnímu výrazu (datum nebo datum a čas) a poté vrátí výslednou hodnotu datetime.
Syntaxe
Lze jej použít následujícími dvěma způsoby:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Kde expr1 je výraz datum nebo datum a čas a expr2 je časový výraz, který se má přidat do expr1 .
Příklad
Zde je příklad k demonstraci:
SELECT TIMESTAMP('2030-02-01'); Výsledek:
+-------------------------+
| TIMESTAMP('2030-02-01') |
+-------------------------+
| 2030-02-01 00:00:00 |
+-------------------------+ Hodnoty data a času
Zde je příklad předání hodnoty datetime:
SELECT TIMESTAMP('2030-02-01 10:30:45'); Výsledek:
+----------------------------------+
| TIMESTAMP('2030-02-01 10:30:45') |
+----------------------------------+
| 2030-02-01 10:30:45 |
+----------------------------------+ Druhý argument
Zde je příklad, který přidá druhý argument k prvnímu:
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15'); Výsledek:
+----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '02:15:15') |
+----------------------------------------------+
| 2030-02-01 12:46:00 |
+----------------------------------------------+ Mikrosekundy
Zde je příklad, který přidává mikrosekundy:
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456'); Výsledek:
+-----------------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') |
+-----------------------------------------------------+
| 2030-02-01 10:30:45.123456 |
+-----------------------------------------------------+ Záporné časy
Záporné časy jsou platné:
Příklad:
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00'); Výsledek:
+-----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') |
+-----------------------------------------------+
| 2030-02-01 01:10:45 |
+-----------------------------------------------+ Aktuální datum
Můžeme předat NOW() jako argument datetime pro použití aktuálního data a času:
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45'); Výsledek:
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Neplatné argumenty
Při předání neplatného argumentu TIMESTAMP() vrátí null s varováním:
SELECT TIMESTAMP('Ten Thirty AM'); Výsledek:
+----------------------------+
| TIMESTAMP('Ten Thirty AM') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set, 1 warning (0.004 sec) Zkontrolujte varování:
SHOW WARNINGS; Výsledek:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Chybí argument
Volání TIMESTAMP() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT TIMESTAMP(); Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
A další příklad:
SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45'); Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1