Trong MySQL, bạn có thể sử dụng DATE_SUB()
hàm để trừ một khoảng thời gian cụ thể cho một ngày. Ví dụ:bạn có thể sử dụng nó để trừ 7 ngày cho một ngày nhất định. Bạn có thể chỉ định có trừ ngày, tuần, tháng, quý, năm, v.v. Bạn cũng có thể trừ một giá trị thời gian, chẳng hạn như giây, micro giây, v.v.
Hàm này tương tự như DATE_ADD()
, ngoại trừ việc nó trừ đi một ngày thay vì cộng vào nó.
Cú pháp
Cú pháp như sau:
DATE_SUB(date,INTERVAL expr unit)
Ví dụ 1 - Cách sử dụng cơ bản
Đây là một ví dụ về cách sử dụng.
SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;
Kết quả:
+------------+ | Result | +------------+ | 2021-05-02 | +------------+
Ví dụ này trừ đi 5 ngày kể từ ngày được cung cấp bởi đối số đầu tiên.
Ví dụ 2 - Đơn vị ngày khác
Bạn có thể chỉ định các đơn vị theo ngày, tuần, tháng, năm, v.v. Dưới đây là một số ví dụ.
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';
Kết quả:
+------------+------------+------------+-------------+------------+ | 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 | +------------+------------+------------+-------------+------------+
Ví dụ 3 - Đơn vị thời gian
Bạn cũng có thể trừ các đơn vị thời gian cho một giá trị ngày / giờ. Đây là một ví dụ.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;
Kết quả:
+---------------------+ | Result | +---------------------+ | 2021-05-07 05:00:00 | +---------------------+
Và bạn có thể chỉ định nhiều đơn vị cùng một lúc. Ví dụ, bạn có thể chỉ định giờ và phút. Như thế này.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Kết quả:
+---------------------+ | Result | +---------------------+ | 2021-05-07 08:30:00 | +---------------------+
Giá trị mong đợi
Bảng sau đây hiển thị các giá trị đơn vị hợp lệ và định dạng mong đợi của chúng.
unit Giá trị | Dự kiến expr Định dạng |
---|---|
MICROSECOND | MICROSECONDS |
THỨ HAI | GIÂY |
PHÚT | PHÚT |
GIỜ | GIỜ |
NGÀY | NGÀY |
TUẦN | TUẦN |
THÁNG | THÁNG |
QUÝ | QUARTERS |
NĂM | NĂM |
SECOND_MICROSECOND | ‘SECONDS.MICROSECONDS’ |
MINUTE_MICROSECOND | ‘PHÚT:SECONDS.MICROSECONDS’ |
MINUTE_SECOND | ‘MINUTES:SECONDS’ |
HOUR_MICROSECOND | ‘GIỜ:PHÚT:SECONDS.MICROSECONDS’ |
HOUR_SECOND | ‘GIỜ:PHÚT:GIÂY’ |
HOUR_MINUTE | ‘GIỜ:PHÚT’ |
DAY_MICROSECOND | ‘NGÀY GIỜ:PHÚT:SECONDS.MICROSECONDS’ |
DAY_SECOND | ‘NGÀY GIỜ:PHÚT:GIÂY’ |
DAY_MINUTE | ‘NGÀY GIỜ:PHÚT’ |
DAY_HOUR | ‘DAYS GIURS’ |
YEAR_MONTH | ‘NĂM-THÁNG’ |
Bạn cũng có thể sử dụng SUBDATE()
chức năng để làm điều tương tự (nó là từ đồng nghĩa với DATE_SUB()
khi sử dụng cùng một cú pháp).
Ngoài ra, cú pháp của SUBDATE()
có dạng thứ hai, là một phương pháp viết tắt để trừ một số ngày nhất định cho một ngày. Để biết thêm thông tin, hãy xem SUBDATE () Ví dụ trong MySQL.