sql >> Database >  >> RDS >> Mysql

Datum- en tijdseenheden in MySQL (volledige lijst)

Hier is een lijst met eenheden die kunnen worden gebruikt in MySQL-datetime- en intervalfuncties.

unit Waarde Verwachte expr Formaat
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOUR
DAY DAYS
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTER
YEAR YEAR
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH 'YEARS-MONTHS'

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

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

De eerste negen eenheden kunnen worden gebruikt met TIMESTAMPADD() en TIMESTAMPDIFF() (deze twee functies ondersteunen de samengestelde eenheden niet op het moment van schrijven).

De eenheden met een onderstrepingsteken zijn samengestelde eenheden. Deze bestaan ​​uit meer dan één basistijdseenheid. Deze kunnen worden gezien als een verkorte manier om meerdere eenheden in één keer te specificeren. Elke eenheid kan worden gescheiden door elk leesteken.

Voorbeelden

Hier is een voorbeeld van het toevoegen van een jaar aan een datetime-expressie:

SELECT '2035-01-01 01:30:45' + INTERVAL 1 YEAR;

Resultaat:

2036-01-01 01:30:45

In dit geval gebruiken we de + operator om de optelling uit te voeren.

Datum-functies

De datum- en tijdseenheden kunnen worden gebruikt met verschillende datumfuncties.

Hier is het met de DATE_ADD() functie:

SELECT DATE_ADD('2035-01-01 01:30:45', INTERVAL 1 YEAR);

Resultaat:

2036-01-01 01:30:45

Samengestelde eenheden

Hier is een voorbeeld dat samengestelde eenheden gebruikt:

SELECT 
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:30:25' DAY_MINUTE) AS "DAY_MINUTE";

Resultaat:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 |
+---------------------+---------------------+---------------------+

De gehele getallen kunnen worden gescheiden door elk leesteken. Daarom zouden we de dubbele punten kunnen vervangen door punten om hetzelfde resultaat te krijgen:

SELECT 
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.25.35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.30.25' DAY_MINUTE) AS "DAY_MINUTE";

Resultaat:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 |
+---------------------+---------------------+---------------------+

  1. UNION- en LIMIT-bewerkingen combineren in MySQL-query

  2. Salesforce SOQL van Crystal Reports

  3. Waarom heb je datamodellering nodig?

  4. Stap voor stap R12.2.6 EBS-installatie op Virtual Box