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

Jak funguje TIMESTAMPADD() v MariaDB

V MariaDB, TIMESTAMPADD() je vestavěná funkce data a času, která k danému výrazu data nebo data a času přidává interval výrazu celého čísla.

Syntaxe

Syntaxe vypadá takto:

TIMESTAMPADD(unit,interval,datetime_expr)

Kde unit je jedna z následujících hodnot:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

Jednotky mohou mít volitelně předponu SQL_TSI_ .

Příklad

Zde je příklad k demonstraci:

SELECT TIMESTAMPADD(DAY, 10, '2030-02-01');

Výsledek:

+-------------------------------------+
| TIMESTAMPADD(DAY, 10, '2030-02-01') |
+-------------------------------------+
| 2030-02-11                          |
+-------------------------------------+

Hodnoty data a času

Zde je příklad předání hodnoty datetime:

SELECT TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45');

Výsledek:

+-----------------------------------------------+
| TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45') |
+-----------------------------------------------+
| 2030-02-01 20:30:45                           |
+-----------------------------------------------+

Přidání SQL_TSI_ Předpona

Jednotka může obsahovat SQL_TSI_ prefix, pokud je požadován:

SELECT TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01');

Výsledek:

+----------------------------------------------+
| TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01') |
+----------------------------------------------+
| 2040-02-01                                   |
+----------------------------------------------+

Mikrosekundy

Zde je příklad, který přidává mikrosekundy:

SELECT TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45');

Výsledek:

+----------------------------------------------------------+
| TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45') |
+----------------------------------------------------------+
| 2030-02-01 10:30:45.123456                               |
+----------------------------------------------------------+

Záporné intervaly

Záporné intervaly jsou platné:

Příklad:

SELECT TIMESTAMPADD(YEAR, -10, '2030-02-01');

Výsledek:

+---------------------------------------+
| TIMESTAMPADD(YEAR, -10, '2030-02-01') |
+---------------------------------------+
| 2020-02-01                            |
+---------------------------------------+

Aktuální datum

Můžeme předat NOW() jako argument datetime pro použití aktuálního data a času:

SELECT 
    NOW(),
    TIMESTAMPADD(DAY, 10, NOW());

Výsledek:

+---------------------+------------------------------+
| NOW()               | TIMESTAMPADD(DAY, 10, NOW()) |
+---------------------+------------------------------+
| 2021-05-28 09:58:56 | 2021-06-07 09:58:56          |
+---------------------+------------------------------+

Chybí argument

Volání TIMESTAMPADD() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT TIMESTAMPADD();

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 TIMESTAMPADD(10, '2020-12-09');

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 '10, '2020-12-09')' at line 1

  1. Třídit podle sloupce ASC, ale nejprve hodnoty NULL?

  2. Operace SQL Server CRUD

  3. CHOP s INSERT INTO prostřednictvím připravených výpisů

  4. Změna priority účtu v databázovém poštovním profilu (SSMS)