sql >> Databáze >  >> RDS >> MariaDB

Jak funguje TIMESTAMP() v MariaDB

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

  1. Pochopení ztráty událostí s prodlouženými událostmi

  2. Vícenásobné výběrové příkazy v jediném dotazu

  3. Formátování řetězce UUID bez REGEXP_REPLACE a PL/SQL

  4. MariaDB JSON_ARRAY_INSERT() Vysvětleno