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ế.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
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
Bài viết này được đăng tại [free tuts .net]
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àyvalue
: 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àyunit
: 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'