sql >> Databasteknik >  >> RDS >> MariaDB

8 sätt att lägga till en timme till en Datetime i MariaDB

Det finns många sätt att utföra datumaritmetik i MariaDB. Detta inkluderar att lägga till eller subtrahera ett visst antal av en given datumdel från ett datum eller datetime-värde.

I den här artikeln presenterar jag 8 sätt att lägga till en timme till ett datetime-värde i MariaDB.

DATE_ADD() Funktion

DATE_ADD() funktionen låter dig lägga till ett belopp till ett datum- eller datumtidsuttryck. Detta inkluderar att lägga till tidsdelar, till exempel timmen.

Exempel:

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

Resultat:

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

I det här fallet lade jag till en timme till datetime-uttrycket.

Så här händer om jag bara anger datumet:

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

Resultat:

+-----------------------------------------+
| DATE_ADD('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-05-01 01:00:00                     |
+-----------------------------------------+

Tidsdelen läggs till resultatet och det antas att den initiala tiden var 00:00:00 .

Om du behöver lägga till mer än en timme, använd bara det numret istället för 1 . Observera att HOUR sökord förblir icke-plural oavsett:

SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR);

Resultat:

+--------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) |
+--------------------------------------------------+
| 2021-05-01 12:00:00                              |
+--------------------------------------------------+

Det är också möjligt att använda en annan datum-/tidsenhet med lämpligt nummer för den enheten. Därför kan du ange ett visst antal minuter, till exempel 60 eller 120.

Exempel:

SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE);

Resultat:

+-----------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) |
+-----------------------------------------------------+
| 2021-05-01 11:00:00                                 |
+-----------------------------------------------------+

Du kan också använda en sammansatt datum/tidsenhet för att lägga till flera enheter. Om du till exempel vill lägga till 1 timme och 30 minuter kan du göra så här:

SELECT 
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);

Resultat:

+--------------------------------------------------------------+
| DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) |
+--------------------------------------------------------------+
| 2021-05-01 11:30:00                                          |
+--------------------------------------------------------------+

Se MariaDB datum- och tidsenheter för en fullständig lista över datum-/tidsenheter.

ADDDATE() Funktion

Ett annat sätt att lägga till en timme till ett datetime-uttryck är att använda ADDDATE() fungera. Denna funktion har två syntaxer:

  1. En syntax låter dig lägga till ett antal dagar till ett datum, vilket inte är vad vi gör här (såvida vi inte planerar att lägga till 24 timmar).
  2. 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 10:00:00', INTERVAL 1 HOUR);

Resultat:

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

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 10:00:00', INTERVAL -1 HOUR);

Resultat:

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

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 10:00:00', INTERVAL -1 HOUR);

Resultat:

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

+ Operatör

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

+ operatören 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 timmar till vårt datum.

Exempel:

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

Resultat:

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

- 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 10:00:00' - INTERVAL -1 HOUR;

Resultat:

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

ADDTIME() Funktion

Du kan använda ADDTIME() funktion för att lägga till ett antal timmar till ett datum och tid uttryck.

Exempel:

SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0');

Resultat:

+------------------------------------------+
| ADDTIME('2021-05-01 10:30:45', '01:0:0') |
+------------------------------------------+
| 2021-05-01 11:30:45                      |
+------------------------------------------+

En fördel med den här funktionen är att du även kan ändra andra tidsenheter, såsom minuter, sekunder, etc.

SUBTIME() Funktion

Du kan alternativt växla runt det och använda SUBTIME() med ett negativt värde om du så önskar:

SELECT SUBTIME('2021-05-01 10:30:45', '-01:0:0');

Resultat:

+-------------------------------------------+
| SUBTIME('2021-05-01 10:30:45', '-01:0:0') |
+-------------------------------------------+
| 2021-05-01 11:30:45                       |
+-------------------------------------------+

Andra datum- och tidsenheter

Exemplen ovan lägger till ett antal timmar till datetime-värdet, 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 operatorer.


  1. Bästa MySQL DigitalOcean-prestanda – ScaleGrid vs. DigitalOcean Managed Databases

  2. 4 sätt att förhindra varningsöverbelastning med SQL Server-övervakning

  3. Ansluta en Bastion Server till en PostgreSQL Server via SSH Tunnel

  4. Hantera hög tillgänglighet i PostgreSQL – Del III:Patroni