sql >> Databáze >  >> RDS >> Mysql

Jednotky data a času v MySQL (úplný seznam)

Zde je seznam jednotek, které lze použít ve funkcích datatime a intervalu MySQL.

unit Hodnota Očekáváno expr Formát
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAYS
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTERS
YEAR YEARS
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'

Tyto jednotky lze použít s + a - operátory při provádění aritmetiky na datech, s funkcemi jako ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() a EXTRACT() .

Mohou být také použity v ON SCHEDULE klauzule CREATE_EVENT() a ALTER_EVENT() funkce.

Prvních devět jednotek lze použít s TIMESTAMPADD() a TIMESTAMPDIFF() (tyto dvě funkce nepodporují složené jednotky v době psaní).

Jednotky obsahující podtržítko jsou složené jednotky. Ty se skládají z více než jedné základní časové jednotky. Lze je považovat za zkrácený způsob, jak zadat více jednotek najednou. Každá jednotka může být oddělena libovolným interpunkčním znakem.

Příklady

Zde je příklad přidání roku k výrazu datetime:

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

Výsledek:

2036-01-01 01:30:45

V tomto případě použijeme + operátora, který provede sčítání.

Funkce data a času

Jednotky data a času lze použít s různými funkcemi data.

Zde je to s DATE_ADD() funkce:

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

Výsledek:

2036-01-01 01:30:45

Složené jednotky

Zde je příklad použití složených jednotek:

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

Výsledek:

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

Celá čísla lze oddělit libovolným interpunkčním znaménkem. Proto bychom mohli nahradit dvojtečky tečkami, abychom získali stejný výsledek:

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

Výsledek:

+---------------------+---------------------+---------------------+
| 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. Jak odstranit nové řádkové znaky z datových řádků v mysql?

  2. Správa uživatelských účtů, role, oprávnění, autentizace PHP a MySQL -- Část 5

  3. Podivné duplicitní chování z GROUP_CONCAT ze dvou LEFT JOINů ze GROUP_BYs

  4. MySQL Performance Cheat Sheet