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

SUBDATE() Примери – MySQL

В MySQL можете да използвате SUBDATE() функция за изваждане на определен период от време от дата. Например, можете да го използвате, за да извадите 10 дни от дадена дата. Можете да укажете дали да изваждате дни, седмици, месеци, тримесечия, години и т.н. Можете също да извадите времева стойност, като секунди, микросекунди и т.н.

Когато използвате първия синтаксис, изброен по-долу, SUBDATE() функцията е синоним на DATE_SUB() функция (подобно на това как ADDDATE() е синоним на DATE_ADD() когато използвате същия синтаксис).

Синтаксис

Можете да използвате тази функция по следните два начина:

SUBDATE(date,INTERVAL expr unit)

Или

SUBDATE(expr,days)

Пример 1 – Първият синтаксис

Ето пример за използване на първата форма на синтаксиса.

SELECT SUBDATE('2018-05-10', INTERVAL 2 DAY) AS Result;

Резултат:

+------------+
| Result     |
+------------+
| 2018-05-08 |
+------------+

Този пример изважда 2 дни от датата, предоставена от първия аргумент.

Пример 2 – Вторият синтаксис

Този пример може да бъде пренаписан по следния начин:

SELECT SUBDATE('2018-05-10', 2) AS Result;

Резултат:

+------------+
| Result     |
+------------+
| 2018-05-08 |
+------------+

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

Както бе споменато, SUBDATE() е синоним на DATE_SUB() , но само когато се използва първият синтаксис. Вторият синтаксис е достъпен само в SUBDATE() .

Пример 3 – Други единици за дата

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

SELECT 
    '2018-05-10' AS 'Start Date',
    SUBDATE('2018-05-10', INTERVAL 2 WEEK) AS '-2 Weeks',
    SUBDATE('2018-05-10', INTERVAL 2 MONTH) AS '-2 Months',
    SUBDATE('2018-05-10', INTERVAL 2 QUARTER) AS '-2 Quarters',
    SUBDATE('2018-05-10', INTERVAL 2 YEAR) AS '-2 Years';

Резултат:

+------------+------------+------------+-------------+------------+
| Start Date | -2 Weeks   | -2 Months  | -2 Quarters | -2 Years   |
+------------+------------+------------+-------------+------------+
| 2018-05-10 | 2018-04-26 | 2018-03-10 | 2017-11-10  | 2016-05-10 |
+------------+------------+------------+-------------+------------+

Пример 4 – Времеви единици

Можете също да използвате SUBDATE() за изваждане на единици за време от стойност на дата/час. Ето един пример.

SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result;

Резултат:

+---------------------+
| Result              |
+---------------------+
| 2018-05-09 23:00:00 |
+---------------------+

Очаквани стойности

Следващата таблица показва валидните стойности на единици и техния очакван формат.

unit Стойност Очакван expr Формат
МИКРОСЕКУНДА МИКРОСЕКУНДИ
ВТОРА СЕКУНДИ
МИНУТА МИНУТИ
ЧАС ЧАСА
ДЕН ДНИ
СЕДМИЦА СЕДМИЦИ
МЕСЕЦ МЕСЕЦИ
Квартал ЧЕТВЕРТИРИ
ГОДИНА ГОДИНИ
SECOND_MICROSECOND ‘SECONDS.MICROSECONDS’
MINUTE_MICROSECOND ‘MINUTES:SECONDS.MICROSECONDS’
MINUTE_SECOND „МИНУТИ:СЕКУНДИ“
HOUR_MICROSECOND „ЧАСОВЕ:МИНУТИ:СЕКУНДИ.МИКРОСЕКУНДИ“
HOUR_SECOND „ЧАСОВЕ:МИНУТИ:СЕКУНДИ“
HOUR_MINUTE „ЧАСОВЕ:МИНУТИ“
DAY_MICROSECOND ‘ДНИ ЧАСОВЕ:МИНУТИ:СЕКУНДИ.МИКРОСЕКУНДИ’
DAY_SECOND „ДНИ ЧАСОВЕ:МИНУТИ:СЕКУНДИ“
DAY_MINUTE „ДНИ ЧАСА:МИНУТИ“
DAY_HOUR „ДНИ ЧАСА“
YEAR_MONTH „ГОДИНИ-МЕСЕЦИ“

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверите размера на базата данни и таблиците на MySQL

  2. Преобразувайте JS date time в MySQL datetime

  3. Как да проверите дали mysql база данни съществува

  4. Неуспешно свързване:Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:ДА) от php функция

  5. TIMESTAMP() Примери – MySQL