sql >> Database teknologi >  >> RDS >> Mysql

Dato- og tidsenheder i MySQL (fuld liste)

Her er en liste over enheder, der kan bruges i MySQL datetime og intervalfunktioner.

unit Værdi Forventet expr Formater
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAYS
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTERS
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'

Disse enheder kan bruges med + og - operatorer, når der udføres aritmetik på datoer, med funktioner såsom ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() , og EXTRACT() .

De kan også bruges i ON SCHEDULE klausul af CREATE_EVENT() og ALTER_EVENT() funktioner.

De første ni enheder kan bruges med TIMESTAMPADD() og TIMESTAMPDIFF() (disse to funktioner understøtter ikke de sammensatte enheder i skrivende stund).

Enhederne, der indeholder en understregning, er sammensatte enheder. Disse består af mere end én basistidsenhed. Disse kan opfattes som en kortfattet måde at specificere flere enheder på på én gang. Hver enhed kan adskilles med et hvilket som helst tegnsætningstegn.

Eksempler

Her er et eksempel på tilføjelse af et år til et dato-tidsudtryk:

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

Resultat:

2036-01-01 01:30:45

I dette tilfælde bruger vi + operatør til at udføre tilføjelsen.

Dato-tidsfunktioner

Dato- og tidsenhederne kan bruges med forskellige datofunktioner.

Her er den med DATE_ADD() funktion:

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

Resultat:

2036-01-01 01:30:45

Sammensatte enheder

Her er et eksempel, der bruger sammensatte enheder:

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";

Resultat:

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

Heltallene kan adskilles med et hvilket som helst tegnsætningstegn. Derfor kunne vi erstatte kolonerne med perioder for at få det samme resultat:

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";

Resultat:

+---------------------+---------------------+---------------------+
| 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. 3 måder at få sammenstillingen af ​​en kolonne i MariaDB

  2. hvordan man konverterer csv til tabel i oracle

  3. SQL Server PIVOT måske?

  4. Lumen - Opret databaseforbindelse ved kørsel