Hàm DATE_SUB trong MySQL

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

1. Mô tả

Hàm DATE_SUB 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 DATE_SUB trong MySQL là:

DATE_SUB( date, INTERVAL value unit )

Trong đó:

  • date: Ngày mà khoảng thời gian nên được trừ.
  • value: Giá trị của khoảng thời gian / 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 DATE_SUB 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 DATE_SUB('2019-03-29 09:45:25.000001', INTERVAL 5 MICROSECOND);
Ket qua: '2019-03-29 09:45:24.999996'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL 25 SECOND);
Ket qua: '2019-03-29 09:45:00'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL 40 MINUTE);
Ket qua: '2019-03-29 09:05:25'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL 5 HOUR);
Ket qua: '2019-03-29 04:45:25'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL 12 DAY);
Ket qua: '2019-03-17 09:45:25'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL 14 WEEK);
Ket qua: '2018-12-21 09:45:25'

mysql> SELECT DATE_SUB('2019-03-29', INTERVAL 2 MONTH);
Ket qua: '2019-01-29'

mysql> SELECT DATE_SUB('2019-03-29', INTERVAL 8 QUARTER);
Ket qua: '2017-03-29'

mysql> SELECT DATE_SUB('2019-03-29', INTERVAL 1 YEAR);
Ket qua: '2018-03-29'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25.000001', INTERVAL '12.000001' SECOND_MICROSECOND);
Ket qua: '2019-03-29 09:45:13'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25.000001', INTERVAL '3:12.000001' MINUTE_MICROSECOND);
Ket qua: '2019-03-29 09:42:13'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL '3:12' MINUTE_SECOND);
Ket qua: '2019-03-29 09:42:13'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25.000001', INTERVAL '1:03:12.000001' HOUR_MICROSECOND);
Ket qua: '2019-03-29 08:42:13'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL '5:03:12' HOUR_SECOND);
Ket qua: '2019-03-29 04:42:13'

mysql> SELECT DATE_SUB('2019-03-29 09:45:25', INTERVAL '3:03' HOUR_MINUTE);
Ket qua: '2019-03-29 06:42:25'

 

Nguồn: freetuts.net