sql >> Database >  >> RDS >> MariaDB

Hoe TIMESTAMPADD() werkt in MariaDB

In MariaDB, TIMESTAMPADD() is een ingebouwde datum- en tijdfunctie die een integer expressie-interval toevoegt aan een bepaalde datum- of datetime-expressie.

Syntaxis

De syntaxis gaat als volgt:

TIMESTAMPADD(unit,interval,datetime_expr)

Waar unit is een van de volgende waarden:

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

De eenheden kunnen optioneel een prefix hebben van SQL_TSI_ .

Voorbeeld

Hier is een voorbeeld om te demonstreren:

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

Resultaat:

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

Datum/tijd-waarden

Hier is een voorbeeld van het doorgeven van een datetime-waarde:

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

Resultaat:

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

Een SQL_TSI_ toevoegen Voorvoegsel

Het apparaat kan een SQL_TSI_ . bevatten voorvoegsel indien nodig:

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

Resultaat:

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

Microseconden

Hier is een voorbeeld dat microseconden toevoegt:

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

Resultaat:

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

Negatieve intervallen

Negatieve intervallen zijn geldig:

Voorbeeld:

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

Resultaat:

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

Huidige datum

We kunnen NOW() doorgeven als het datetime-argument om de huidige datum en tijd te gebruiken:

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

Resultaat:

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

Ontbrekend argument

Bellen TIMESTAMPADD() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT TIMESTAMPADD();

Resultaat:

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

En nog een voorbeeld:

SELECT TIMESTAMPADD(10, '2020-12-09');

Resultaat:

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. STRCMP() gebruiken om 2 strings in MySQL te vergelijken

  2. Hoe u alle beperkingen van CHECK &Foreign Key voor een tabel in SQL Server inschakelt (T-SQL-voorbeelden)

  3. Android:hoe de afbeelding dynamisch van de server te laden op naam van SQlite

  4. Hoe kan ik dubbele rijen in een tabel verwijderen?