sql >> Databasteknik >  >> RDS >> Mysql

Datum- och tidsenheter i MySQL (fullständig lista)

Här är en lista över enheter som kan användas i MySQL datumtid och intervallfunktioner.

unit Värde Förväntat expr Format
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'

Dessa enheter kan användas med + och - operatorer när man utför aritmetik på datum, med funktioner som ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() , och EXTRACT() .

De kan också användas i ON SCHEDULE sats i CREATE_EVENT() och ALTER_EVENT() funktioner.

De första nio enheterna kan användas med TIMESTAMPADD() och TIMESTAMPDIFF() (dessa två funktioner stöder inte de sammansatta enheterna i skrivande stund).

Enheterna som innehåller ett understreck är sammansatta enheter. Dessa består av mer än en bastidsenhet. Dessa kan ses som ett kortfattat sätt att specificera flera enheter på en gång. Varje enhet kan separeras med valfritt skiljetecken.

Exempel

Här är ett exempel på hur du lägger till ett år till ett datum och tid-uttryck:

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

Resultat:

2036-01-01 01:30:45

I det här fallet använder vi + operatör för att utföra tillägget.

Datetime-funktioner

Datum- och tidsenheterna kan användas med olika datumfunktioner.

Här är den med DATE_ADD() funktion:

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

Resultat:

2036-01-01 01:30:45

Kompositenheter

Här är ett exempel som använder sammansatta enheter:

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

Heltalen kan separeras med valfritt skiljetecken. Därför kunde vi ersätta kolon med perioder för att få samma 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. Använda ODBC med Salesforce och OneLogin Single Sign On (SSO)

  2. Kan du VÄLJA allt, utom 1 eller 2 fält, utan författarkramp?

  3. Köra 2 frågor samtidigt på Oracle SQL Developer?

  4. SQL JOIN vs IN prestanda?