Hàm SUBDATE trong MySQL

Trong bài này mình sẽ hướng dẫn cách sử dụng hàm SUBDATE trong MySQL thông qua cú pháp và ví dụ thực tế.

1. Mô tả

Hàm SUBDATE trả về một ngày mà sau đó một khoảng thời gian/ngày nhất định đã bị trừ

2. Cú pháp

Cú pháp của hàm SUBDATE trong MySQL là:

SUBDATE( date, INTERVAL value unit )

Hoặc

SUBDATE( date, days )

Trong đó:

  • date: Ngày mà khoảng thời gian nên được trừ.
  • days: Số ngày trừ vào ngày
  • value: Giá trị của khoảng giờ/ngày mà bạn muốn trừ. Bạn có thể chỉ định giá trị dương và âm cho tham số này
  • unit: Loại đơn vị của khoảng thời gian như NGÀY, THÁNG, PHÚT, GIỜ, v.v.

3. Version

Hàm SUBDATE có thể được sử dụng trong các phiên bản sau của MySQL:

  • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

4. Ví dụ

mysql> SELECT SUBDATE('2019-04-01 09:45:20.000001', INTERVAL 5 MICROSECOND);
Ket qua: '2019-04-01 09:45:19.999996'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL 23 SECOND);
Ket qua: '2019-04-01 09:44:57'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL 20 MINUTE);
Ket qua: '2019-04-01 09:25:20'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL 5 HOUR);
Ket qua: '2019-04-01 04:45:20'

mysql> SELECT SUBDATE('2019-04-01', INTERVAL 10 DAY);
Ket qua: '2019-03-22'

mysql> SELECT SUBDATE('2019-04-01', 11);
Ket qua: '2014-02-03'

mysql> SELECT SUBDATE('2019-04-01', INTERVAL 11 WEEK);
Ket qua: '2019-03-21'

mysql> SELECT SUBDATE('2019-04-01', INTERVAL 8 MONTH);
Ket qua: '2018-08-01'

mysql> SELECT SUBDATE('2019-04-01', INTERVAL 2 QUARTER);
Ket qua: '2018-10-01'

mysql> SELECT SUBDATE('2019-04-01', INTERVAL 4 YEAR);
Ket qua: '2015-04-01'

mysql> SELECT SUBDATE('2019-04-01 09:45:20.000001', INTERVAL '12.000001' SECOND_MICROSECOND);
Ket qua: '2019-04-01 09:45:08'

mysql> SELECT SUBDATE('2019-04-01 09:45:20.000001', INTERVAL '3:12.000001' MINUTE_MICROSECOND);
Ket qua: '2019-04-01 09:42:08'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL '3:12' MINUTE_SECOND);
Ket qua: '2019-04-01 09:42:08'

mysql> SELECT SUBDATE('2019-04-01 09:45:20.000001', INTERVAL '1:03:12.000001' HOUR_MICROSECOND);
Ket qua: '2019-04-01 08:42:08'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL '8:03:12' HOUR_SECOND);
Ket qua: '2019-04-01 01:42:08'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL '5:03' HOUR_MINUTE);
Ket qua: '2019-04-01 04:42:20'

mysql> SELECT SUBDATE('2019-04-01 09:45:20.000001', INTERVAL '2 5:03:15.000001' DAY_MICROSECOND);
Ket qua: '2019-03-30 04:42:05'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL '6 1:03:12' DAY_SECOND);
Ket qua: '2019-03-26 08:42:08'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL '9 1:03' DAY_MINUTE);
Ket qua: '2019-03-23 08:42:20'

mysql> SELECT SUBDATE('2019-04-01 09:45:20', INTERVAL '5 6' DAY_HOUR);
Ket qua: '2019-03-27 03:45:20'

mysql> SELECT SUBDATE('2019-04-01', INTERVAL '2-3' YEAR_MONTH);
Ket qua: '2017-01-01'

 

Nguồn: freetuts.net