Mysql
 sql >> база данни >  >> RDS >> Mysql

Единици за дата и час в MySQL (пълен списък)

Ето списък с единици, които могат да се използват във функциите за дата и време на MySQL и интервал.

unit Стойност Очакван expr Формат
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'

Тези единици могат да се използват с + и - оператори при извършване на аритметика на дати, с функции като ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() и EXTRACT() .

Те могат да се използват и в ON SCHEDULE клауза на CREATE_EVENT() и ALTER_EVENT() функции.

Първите девет единици могат да се използват с TIMESTAMPADD() и TIMESTAMPDIFF() (тези две функции не поддържат съставните единици към момента на писане).

Единиците, съдържащи долна черта, са съставни единици. Те се състоят от повече от една базова времева единица. Те могат да се разглеждат като съкратен начин за определяне на множество единици наведнъж. Всяка единица може да бъде разделена с произволен препинателен знак.

Примери

Ето пример за добавяне на година към израз за дата и час:

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

Резултат:

2036-01-01 01:30:45

В този случай използваме + оператор за извършване на добавянето.

Функции за дата и час

Единиците за дата и час могат да се използват с различни функции за дата.

Ето го с DATE_ADD() функция:

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

Резултат:

2036-01-01 01:30:45

Съставни единици

Ето пример, който използва съставни единици:

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

Резултат:

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

Целите числа могат да бъдат разделени с произволен препинателен знак. Следователно бихме могли да заменим двоеточия с точки, за да получим същия резултат:

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

Резултат:

+---------------------+---------------------+---------------------+
| 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_VALID() – Тествайте за валиден JSON в MySQL

  2. Как да активирам INNODB в mysql

  3. Автоматизирайте внедряването на вашия MySQL или Postgres клъстер от архивиране

  4. Предаване на масив към заявка с помощта на клауза WHERE

  5. Ръководство за проектиране на база данни за система за социални мрежи в MySQL