MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak ADDDATE() działa w MariaDB

W MariaDB, ADDDATE() to wbudowana funkcja daty i czasu, która wykonuje arytmetykę dat.

Umożliwia zmianę daty poprzez określenie daty, jednostki do dodania i kwoty do dodania. Możesz przekazać kwotę ujemną, jeśli chcesz odjąć datę o określony przedział.

ADDDATE() ma również składnię skrótów, która pozwala dodać określoną liczbę dni do daty.

Składnia

ADDDATE() funkcja ma dwie składnie.

Składnia 1:

ADDDATE(expr,days)

Gdzie expr to data i days to liczba dni do dodania.

Składnia 2:

ADDDATE(date,INTERVAL expr unit)

Gdzie date to data do zmiany, expr to kwota do dodania, a unit to jednostka do dodania (np. sekunda, minuta itp.).

Używając tej składni, ADDDATE() jest synonimem DATE_ADD() .

Przykład — składnia 1

Oto przykład użycia pierwszej składni:

SELECT ADDDATE('2021-05-01', 1);

Wynik:

+--------------------------+
| ADDDATE('2021-05-01', 1) |
+--------------------------+
| 2021-05-02               |
+--------------------------+

W razie potrzeby możemy również uwzględnić część czasu:

SELECT ADDDATE('2021-05-01 10:00:00', 1);

Wynik:

+-----------------------------------+
| ADDDATE('2021-05-01 10:00:00', 1) |
+-----------------------------------+
| 2021-05-02 10:00:00               |
+-----------------------------------+

Oto dwa alternatywne sposoby zrobienia tego samego:

SELECT 
    DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS "Result 1",
    '2021-05-01 10:00:00' + INTERVAL 1 DAY AS "Result 2";

Wynik:

+---------------------+---------------------+
| Result 1            | Result 2            |
+---------------------+---------------------+
| 2021-05-02 10:00:00 | 2021-05-02 10:00:00 |
+---------------------+---------------------+

Przykład — składnia 2

Oto przykład użycia drugiej składni:

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

Wynik:

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

Ta składnia pozwala nam dodawać do daty inne jednostki (tj. nie tylko dni). Tutaj dodałem godzinę do daty, ale równie dobrze mogłem dodać minuty, sekundy, miesiące, dni, lata itp. Czytaj dalej, aby zobaczyć przykłady.

Oto dwie alternatywne metody osiągnięcia tego samego wyniku, co w powyższym przykładzie:

SELECT 
    DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) AS "Result 1",
    '2021-05-31 10:00:00' + INTERVAL 1 HOUR AS "Result 2";

Wynik:

+---------------------+---------------------+
| Result 1            | Result 2            |
+---------------------+---------------------+
| 2021-05-31 11:00:00 | 2021-05-31 11:00:00 |
+---------------------+---------------------+

Przedziały ujemne

Podanie ujemnego przedziału powoduje odjęcie tej kwoty od daty.

Przykład:

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

Wynik:

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

Inne jednostki

Oto przykład, który dodaje interwał 1 do różnych jednostek daty i czasu:

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

Wynik (przy użyciu wyjścia pionowego):

       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

Jednostki złożone

Oto przykład wykorzystujący jednostki złożone:

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

Wynik:

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

Daty zerowe

Przekazywanie null dla daty zwraca null :

SELECT ADDDATE(null, INTERVAL 1 YEAR);

Wynik:

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

Brakujący argument

Wywołanie ADDDATE() z niewłaściwą liczbą argumentów lub bez przekazania jakichkolwiek argumentów powoduje błąd:

SELECT ADDDATE();

Wynik:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Importowanie partycji InnoDB w MariaDB 10.0/10.1

  2. Najlepsze narzędzia Open Source do migracji MySQL i MariaDB

  3. MariaDB JSON_OBJECTAGG() Objaśnienie

  4. Porównanie odzyskiwania do punktu w czasie Amazon RDS z ClusterControl

  5. Jak działa funkcja INSERT() w MariaDB