sql >> Database >  >> RDS >> MariaDB

Hoe DATE_ADD() werkt in MariaDB

In MariaDB, DATE_ADD() is een ingebouwde datum- en tijdfunctie die datumberekeningen uitvoert.

Hiermee kunt u een datum wijzigen door de datum, de toe te voegen eenheid en het toe te voegen bedrag op te geven. U kunt een negatief bedrag doorgeven als u de datum met een bepaald interval moet aftrekken.

Syntaxis

De syntaxis gaat als volgt:

DATE_ADD(date,INTERVAL expr unit)

Waar date is de datum om te veranderen, expr is het toe te voegen bedrag, en unit is de datum/tijd-eenheid die moet worden toegevoegd (bijv. seconde, minuut, enz.).

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR);

Resultaat:

+--------------------------------------------------+
| DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-31 11:00:00                              |
+--------------------------------------------------+

Dit is zoiets als het volgende doen:

SELECT '2021-05-31 10:00:00' + INTERVAL 1 HOUR;

Resultaat:

+-----------------------------------------+
| '2021-05-31 10:00:00' + INTERVAL 1 HOUR |
+-----------------------------------------+
| 2021-05-31 11:00:00                     |
+-----------------------------------------+

Negatieve intervallen

Als u een negatief interval opgeeft, wordt dat bedrag van de datum afgetrokken.

Voorbeeld:

SELECT DATE_ADD('2021-05-31 10:00:00', INTERVAL -1 HOUR);

Resultaat:

+---------------------------------------------------+
| DATE_ADD('2021-05-31 10:00:00', INTERVAL -1 HOUR) |
+---------------------------------------------------+
| 2021-05-31 09:00:00                               |
+---------------------------------------------------+

Andere eenheden

Hier is een voorbeeld dat een interval van 1 toevoegt aan de verschillende datum- en tijdseenheden:

SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;

Resultaat (met verticale uitvoer):

       YEAR: 2022-05-01 10:00:00
      MONTH: 2021-06-01 10:00:00
        DAY: 2021-05-02 10:00:00
       HOUR: 2021-05-01 11:00:00
     MINUTE: 2021-05-01 10:01:00
     SECOND: 2021-05-01 10:00:01
MICROSECOND: 2021-05-01 10:00:00.000001

Samengestelde eenheden

Hier is een voorbeeld dat samengestelde eenheden gebruikt:

SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";

Resultaat:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-01 11:30:00 |
+---------------------+---------------------+---------------------+

Null-datums

Doorgeven van null voor de datum retourneert null :

SELECT DATE_ADD(null, INTERVAL 1 YEAR);

Resultaat:

+---------------------------------+
| DATE_ADD(null, INTERVAL 1 YEAR) |
+---------------------------------+
| NULL                            |
+---------------------------------+

Ontbrekend argument

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

SELECT DATE_ADD();

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

  1. Wat zijn de beperkingen van MS Access?

  2. Hoe voeg je twee tabellen samen in een veld met een externe sleutel met django ORM?

  3. Parametersnuiven (of spoofen) in SQL Server

  4. CHECK-beperkingen in-/uitschakelen in SQLite