sql >> Databasteknik >  >> RDS >> MariaDB

6 sätt att lägga till ett år till ett datum i MariaDB

MariaDB erbjuder flera sätt att lägga till ett år eller ett visst antal år till ett givet datum. Du kanske till exempel vill lägga till 1 år, 10 år, 30 år osv.

Här är 6 sätt att lägga till ett år till ett datum i MariaDB.

DATE_ADD() Funktion

DATE_ADD() funktionen låter dig lägga till ett belopp till ett datum. Du kan till exempel lägga till ett antal dagar, veckor, månader, år etc.

Exempel:

SELECT DATE_ADD('2021-05-01', INTERVAL 1 YEAR); 

Resultat:

+------------------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 1 ÅR) |+---------------------------------------- -------+| 2022-05-01 |+------------------------------------------------+

Det finns ingen regel som säger att det bara kan vara 1 år. Du kan lägga till flera år. Hur som helst, YEAR sökord förblir icke-plural:

SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR); 

Resultat:

+--------------------------------------------------+| DATE_ADD('2021-05-01', INTERVAL 10 ÅR) |+---------------------------------------- --------+| 2031-05-01 |+------------------------------------------------+ 

Det är också möjligt att använda en annan datum-/tidsenhet med lämpligt nummer för den enheten. Detta tillvägagångssätt bör dock användas med försiktighet, eftersom det kan resultera i oväntade resultat.

Exempel:

SELECT 
    DATE_ADD('2021-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2021-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2021-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2021-05-01', INTERVAL 1 YEAR) AS Years; 

Resultat:

+------------+-------------+-------+------- -----+| Dagar | Veckor | Månader | År |+------------+------------+----------------+-------- ----+| 2022-05-01 | 2022-04-30 | 2022-05-01 | 2022-05-01 |+-----------------------------+---- --------+

I det här fallet gav att lägga till 52 veckor ett annat resultat än att använda 365 dagar, 12 månader och 1 år.

Om vi ​​flyttar fram datumet ett par år får vi ännu mer inkonsekvens:

SELECT 
    DATE_ADD('2023-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2023-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2023-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2023-05-01', INTERVAL 1 YEAR) AS Years; 

Resultat:

+------------+-------------+-------+------- -----+| Dagar | Veckor | Månader | År |+------------+------------+----------------+-------- ----+| 2024-04-30 | 2024-04-29 | 2024-05-01 | 2024-05-01 |+----------------------------+---- --------+

Den här gången med MONTH och YEAR returnerar samma resultat, men DAY och WEEK returnerar två olika datum, som båda skiljer sig från MONTH och YEAR resultat.

ADDDATE() Funktion

Ett annat sätt att lägga till ett år till ett datum är att använda ADDDATE() fungera. Denna funktion har två syntaxer. En syntax låter dig lägga till ett antal dagar till ett datum. Den andra syntaxen är densamma som med DATE_ADD() funktionen ovan. När du använder denna syntax, ADDDATE() är en synonym för DATE_ADD() .

Exempel:

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

Resultat:

+----------------------------------------+| ADDDATE('2021-05-01', INTERVAL 1 ÅR) |+---------------------------------------- ------+| 2022-05-01 |+------------------------------------------------+ 

DATE_SUB() Funktion

DATE_SUB() funktionen låter dig subtrahera ett belopp till ett datum. Men om du anger ett negativt värde att subtrahera, slutar det med att det läggs till till datumet.

Exempel:

SELECT DATE_SUB('2021-05-01', INTERVAL -1 YEAR); 

Resultat:

+--------------------------------------------------+| DATE_SUB('2021-05-01', INTERVAL -1 ÅR) |+---------------------------------------- ----------+| 2022-05-01 |+--------------------------------------------------------+ 

SUBDATE() Funktion

SUBDATE() funktion är en synonym för DATE_SUB() när du använder följande syntax.

Exempel:

SELECT SUBDATE('2021-05-01', INTERVAL -1 YEAR); 

Resultat:

+------------------------------------------------+| SUBDATE('2021-05-01', INTERVAL -1 YEAR) |+---------------------------------------- --------+| 2022-05-01 |+------------------------------------------------+

+ Operatör

Ett annat alternativ är att använda + operatör.

+ operatör används för att utföra tillägg, och vi kan använda den på datum, tillsammans med tillämplig datum-/tidsenhet för att lägga till ett visst antal år till vårt datum.

Exempel:

SELECT '2021-05-01' + INTERVAL 1 YEAR; 

Resultat:

+--------------------------------+| '2021-05-01' + INTERVAL 1 ÅR |+----------------------------------------+| 2022-05-01 |+--------------------------------+

- Operatör

- operator kan användas för att subtrahera ett belopp från ett datum. Men om det används för att subtrahera ett negativt tal, blir resultatet ett positivt belopp som läggs till datumet:

SELECT '2021-05-01' - INTERVAL -1 YEAR; 

Resultat:

+--------------------------------+| '2021-05-01' - INTERVAL -1 ÅR |+----------------------------------------+| 2022-05-01 |+----------------------------------------+

Andra datum- och tidsenheter

Exemplen ovan lägger till ett antal år till datumet, men vi kan använda samma teknik för att lägga till valfri datum-/tidsenhet. Se MariaDB datum- och tidsenheter för en fullständig lista över datum-/tidsenheter som kan användas med ovanstående funktioner och operator.


  1. Oracle (11.2.0.1):Hur man identifierar raden som för närvarande uppdateras av UPDATE-satsen

  2. Hur man lägger till en månad till ett datum i SQLite

  3. orakel | radera dubbletter av poster

  4. Hur OCTET_LENGTH() fungerar i MariaDB