sql >> Database >  >> RDS >> MariaDB

Uren aftrekken van een datetime-waarde in MariaDB

Hier zijn enkele opties voor het aftrekken van een of meer uren van een datetime-waarde in MariaDB.

De SUBTIME() Functie

De SUBTIME() trekt een bepaalde hoeveelheid tijd af van een tijd- of datetime-waarde.

Voorbeeld:

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

Resultaat:

+--------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '01:00:00') |
+--------------------------------------------+
| 2021-05-01 09:00:00                        |
+--------------------------------------------+

U kunt ook de andere tijdseenheden wijzigen, zoals minuten, seconden, enz.

De DATE_SUB() Functie

De DATE_SUB() Met deze functie kunt u een bepaald aantal datum/tijd-eenheden aftrekken van een datum- of datetime-uitdrukking. Daarom kunnen we deze functie gebruiken om de datetime-waarde te retourneren, minus een bepaald aantal uren.

Voorbeeld:

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

Resultaat:

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

U kunt ook samengestelde datum- en tijdseenheden gebruiken. U kunt bijvoorbeeld uren en minuten in één keer doen.

Voorbeeld:

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

Resultaat:

+---------------------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) |
+---------------------------------------------------------------+
| 2021-04-30 18:30:00                                           |
+---------------------------------------------------------------+

Alleen de datum doorgeven

Dit is wat er gebeurt als we alleen een datumwaarde geven:

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

Resultaat:

+-----------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-04-30 23:00:00                     |
+-----------------------------------------+

Het gaat ervan uit dat de tijd begint om 00:00:00, en dus het HOUR het bedrag wordt daarvan afgetrokken.

Meerdere uren

Als je meer dan een uur moet aftrekken, gebruik dan dat getal in plaats van 1 . Echter, de HOUR zoekwoord blijft hoe dan ook niet-meervoud:

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

Resultaat:

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

De aftrekkingsoperator (- )

Een andere manier om uren van een datetime-expressie af te trekken, is door de operator voor aftrekken (-) te gebruiken ), ook wel de min-operator genoemd.

Voorbeeld:

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

Resultaat:

+------------------------------------------+
| '2021-05-01 10:00:00' - INTERVAL 48 HOUR |
+------------------------------------------+
| 2021-04-29 10:00:00                      |
+------------------------------------------+

De toevoegingsoperator (+ )

U kunt ook de opteloperator gebruiken (+ ) samen met een negatief bedrag.

Voorbeeld:

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

Resultaat:

+-------------------------------------------+
| '2021-05-01 10:00:00' + INTERVAL -48 HOUR |
+-------------------------------------------+
| 2021-04-29 10:00:00                       |
+-------------------------------------------+

Andere manieren om uren af ​​te trekken

Hier zijn enkele andere benaderingen die u zou kunnen gebruiken om een ​​of meer uren van een datetime-waarde af te trekken:

  • De ADDTIME() functie (als u een negatief bedrag opgeeft, wordt dat bedrag afgetrokken van de datetime-waarde).
  • De SUBDATE() functie (dit is een synoniem voor DATE_SUB() wanneer gebruikt met dezelfde syntaxis).
  • De DATE_ADD() functie (als u een negatief bedrag opgeeft, wordt dat bedrag afgetrokken van de datetime-waarde).
  • De ADDDATE() functie (als u een negatief bedrag opgeeft, wordt dat bedrag afgetrokken van de datetime-waarde).

  1. Sql*plus retourneert altijd exit-code 0?

  2. Postgres-wijzigingen in Java-toepassing op de hoogte stellen

  3. Oracle PLS-00363:uitdrukking '' kan niet worden gebruikt als toewijzingsdoel

  4. SQL-query om kolomgegevens in rijen te splitsen