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

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

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

Тази функция е подобна на DATE_ADD() , с изключение на това, че изважда от дата, вместо да добавя към нея.

Синтаксис

Синтаксисът е така:

DATE_SUB(date,INTERVAL expr unit)

Пример 1 – Основна употреба

Ето пример за употреба.

SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;

Резултат:

+------------+
| Result     |
+------------+
| 2021-05-02 |
+------------+

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

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

Можете да посочите мерните единици в дни, седмици, месеци, години и т.н. Ето някои примери.

SELECT 
    '2021-05-07' AS 'Start Date',
    DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks',
    DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months',
    DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters',
    DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';

Резултат:

+------------+------------+------------+-------------+------------+
| Start Date | -2 Weeks   | -2 Months  | -2 Quarters | -2 Years   |
+------------+------------+------------+-------------+------------+
| 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07  | 2019-05-07 |
+------------+------------+------------+-------------+------------+

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

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

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;

Резултат:

+---------------------+
| Result              |
+---------------------+
| 2021-05-07 05:00:00 |
+---------------------+

И можете да посочите няколко единици едновременно. Например, можете да посочите часове и минути. Като това.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;

Резултат:

+---------------------+
| Result              |
+---------------------+
| 2021-05-07 08:30: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 „ГОДИНИ-МЕСЕЦИ“

Можете също да използвате SUBDATE() функция, за да направи същото (това е синоним на DATE_SUB() функция при използване на същия синтаксис).

В допълнение, синтаксисът на SUBDATE() има втора форма, която е стенографски метод за изваждане на определен брой дни от дата. За повече информация вижте SUBDATE() Примери в MySQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте система за бюлетин с PHP и MySQL

  2. Как да изведем грешка в MySQL функция

  3. Промяна на началния номер за автоматично увеличение?

  4. Как да разположите Percona XtraDB Cluster 8 за висока наличност

  5. Mysql, за да изберете месечен запис, дори ако данни не съществуват