sql >> Database >  >> RDS >> MariaDB

MariaDB Samengestelde datum- en tijdseenheden uitgelegd

MariaDB bevat een aantal datum- en tijdseenheden die u kunt gebruiken bij het werken met datum- en tijdwaarden. Bijvoorbeeld MONTH is een eenheid, en HOUR is een andere eenheid.

Sommige eenheden zijn samengestelde eenheden. Samengestelde eenheden zijn wanneer twee eenheden worden gecombineerd tot één. De naamgevingsconventie is dat elke eenheidsnaam wordt gescheiden door een onderstrepingsteken. Bijvoorbeeld MINUTE_SECOND is voor minuten en seconden.

Hieronder staan ​​enkele voorbeelden die laten zien hoe samengestelde eenheden werken in MariaDB.

Lijst van samengestelde eenheden

Ten eerste is hier een lijst van de samengestelde eenheden die beschikbaar zijn in MariaDB:

Eenheid Beschrijving
SECOND_MICROSECOND Seconden.Microseconden
MINUTE_MICROSECOND Minuten.Seconden.Microseconden
MINUTE_SECOND Minuten.Seconden
HOUR_MICROSECOND Uren.Minuten.Seconden.Microseconden
HOUR_SECOND Uren.Minuten.Seconden
HOUR_MINUTE Uren.Minuten
DAY_MICROSECOND Dagen Uren.Minuten.Seconden.Microseconden
DAY_SECOND Dagen Uren.Minuten.Seconden
DAY_MINUTE Dagen Uren.Minuten
DAY_HOUR Dagen Uren
YEAR_MONTH Jaar-Maanden

Alleen al het kijken naar hun namen geeft een redelijk goed idee van wat ze doen.

Samengestelde eenheden (zoals bij elke datum/tijd-eenheid) kunnen worden gebruikt bij het extraheren van delen van een datum/tijd-waarde, en ook bij dingen zoals het optellen en aftrekken van een tijdsinterval bij een datum/tijd-waarde.

Deze kunnen worden gebruikt met de + en - operatoren bij het uitvoeren van berekeningen op datums, met functies zoals ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() , EXTRACT() , TIMESTAMPADD() , en TIMESTAMPDIFF() .

Ze kunnen ook worden gebruikt in de ON SCHEDULE clausule van de CREATE_EVENT() en ALTER_EVENT() functies.

Voorbeeld – Samengestelde eenheden extraheren

Datum- en tijdseenheden kunnen worden gebruikt met een heleboel verschillende functies en in verschillende andere contexten. Een van de functies die deze eenheden accepteren is de EXTRACT() functie. Deze functie retourneert een gespecificeerde datum/tijd-eenheid van een bepaalde datum of datetime-waarde.

Hier is een voorbeeld van het gebruik van een samengestelde eenheid om het jaar en de maand uit een datum te halen:

SELECT EXTRACT(YEAR_MONTH FROM '2030-12-25');

Resultaat:

+---------------------------------------+
| EXTRACT(YEAR_MONTH FROM '2030-12-25') |
+---------------------------------------+
|                                203012 |
+---------------------------------------+

We kunnen zien dat het jaar en de maand als één waarde worden geretourneerd.

Voorbeeld – Samengestelde eenheden optellen/aftrekken

Samengestelde eenheden kunnen ook worden gebruikt om datum- en tijdsintervallen op te tellen en af ​​te trekken.

Voorbeeld:

SELECT '2030-12-25' + INTERVAL '2:08' DAY_HOUR;

Resultaat:

+-----------------------------------------+
| '2030-12-25' + INTERVAL '2:08' DAY_HOUR |
+-----------------------------------------+
| 2030-12-27 08:00:00                     |
+-----------------------------------------+

In dit geval zijn er twee onderdelen waar u rekening mee moet houden met betrekking tot de composieteenheid.

Net als in het vorige voorbeeld hebben we een samengestelde eenheid gebruikt (in dit geval DAY_HOUR ). Met betrekking tot het werkelijke interval dat moet worden toegevoegd, hebben we een dubbele punt gebruikt om elke zijde van de samengestelde eenheid te scheiden.

In dit geval hebben we '2:08' . opgegeven , wat 2 dagen en 8 uur optelde bij de datumwaarde. De oorspronkelijke datum heeft geen tijdgedeelte, en daarom wordt aangenomen dat de begintijd 00:00:00 is .

MariaDB is redelijk vergevingsgezind met de striktheid van het formaat. We kunnen hetzelfde effect krijgen door verschillende scheidingstekens te gebruiken, en ook door de voorloopnul weg te laten.

Hier is nog een voorbeeld dat de DATE_ADD() . gebruikt functie met verschillende tijdsintervallen:

SELECT DATE_ADD('2030-12-25', INTERVAL '2!8' DAY_HOUR);

Resultaat:

+-------------------------------------------------+
| DATE_ADD('2030-12-25', INTERVAL '2!8' DAY_HOUR) |
+-------------------------------------------------+
| 2030-12-27 08:00:00                             |
+-------------------------------------------------+

Hier zijn nog enkele voorbeelden van verschillende samengestelde eenheden:

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 |
+---------------------+---------------------+---------------------+


  1. SQL update velden van een tabel uit velden van een andere

  2. Hoe de functie TRANSLATE() werkt in SQL Server (T-SQL)

  3. Installeer Azure Data Studio op Ubuntu 18.04

  4. Zijn PostgreSQL-functies transactioneel?