Hướng dẫn mysql date_sub

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

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 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 đó:

Bài viết này được đăng tại [free tuts .net]

  • 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'

Hàm MySQL DATE_SUB là một trong những Hàm ngày, rất hữu ích để loại bỏ hoặc trừ các khoảng do người dùng chỉ định khỏi một ngày nhất định và trả về ngày hoặc DateTime.

  • Cú pháp MySQL DATE_SUB
  • Ví dụ về hàm DATE_SUB của MySQL
    • Ví dụ 2 về hàm DATE_SUB
    • DATE Hàm SUB Ví dụ 3
    • Ví dụ 4 về hàm DATE_SUB của MySQL

Cú pháp cơ bản của Hàm DATE_SUB MySQL như hình dưới đây:

DATE_SUB[Date, INTERVAL expression Unit];
  • Ngày: Nó chấp nhận giá trị DateTime hoặc ngày chuỗi.
  • Biểu thức: Bạn phải chỉ định số Đơn vị hoặc Giá trị để trừ. Ví dụ: 2 THÁNG có nghĩa là trừ đi hai tháng từ một số tiền nhất định.
  • Đơn vị: Nó chấp nhận phạm vi giá trị đơn vị từ Microsecond đến Year

Ví dụ về hàm DATE_SUB của MySQL

Sau đây là các ví dụ danh sách giúp bạn hiểu việc sử dụng phương pháp Ngày phụ này.

Ở đây, chúng tôi đã trừ 1000 Micro giây, 250 Giây và 720 Phút cho một DateTime nhất định [2019-02-10 10: 15: 20.000010]. Tôi khuyên bạn nên tham khảo bài viết về phương pháp Ngày trong MySQL để hiểu các Đơn vị sau Khoảng thời gian

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 1000 MICROSECOND];

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 250 SECOND];

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 720 MINUTE];

Ví dụ 2 về hàm DATE_SUB

Trong ví dụ về hàm MySQL DATE_SUB này, Đầu tiên, chúng tôi đã trừ đi 420 Giờ. Trong câu lệnh tiếp theo, chúng tôi đã trừ 120 ngày cho một biểu thức Datetime đã cho. Trong tuyên bố thứ ba, chúng tôi đã xóa 12 Tuần.

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 420 HOUR];

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 120 DAY];

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 12 WEEK];

DATE Hàm SUB Ví dụ 3

Trong ví dụ này, chúng tôi đang xóa hoặc trừ 33 Tháng, 12 Khu và 16 Năm khỏi một biểu thức Ngày giờ nhất định.

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 33 MONTH];

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 12 QUARTER];

SELECT DATE_SUB['2019-02-10 10:15:20.000010', INTERVAL 16 YEAR];

Ví dụ 4 về hàm DATE_SUB của MySQL

Ở đây, Đầu tiên, chúng tôi đã trừ 16 Năm và 14 Tháng. Câu lệnh thứ hai trừ đi 31 Ngày, 18 Giờ và 25 Phút. Câu lệnh thứ ba loại bỏ 22 Giờ và 40 Phút khỏi DateTime nhất định.

SELECT DATE_SUB['2019-02-10 10:15:20', INTERVAL '16-14' YEAR_MONTH];

SELECT DATE_SUB['2019-02-10 10:15:20', INTERVAL '31 18:25' DAY_MINUTE];

SELECT DATE_SUB['2019-02-10 10:15:20', INTERVAL '22:40' HOUR_MINUTE];

Chủ Đề