Dưới đây là một số tùy chọn để trừ một hoặc nhiều giờ cho giá trị ngày giờ trong MariaDB.
SUBTIME()
Chức năng
SUBTIME()
trừ một lượng thời gian nhất định cho một giá trị thời gian hoặc ngày giờ.
Ví dụ:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00');
Kết quả:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '01:00:00') | +--------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------+
Bạn cũng có thể thay đổi các đơn vị thời gian khác, chẳng hạn như phút, giây, v.v.
DATE_SUB()
Chức năng
DATE_SUB()
hàm cho phép bạn trừ một số đơn vị ngày / giờ nhất định khỏi một biểu thức ngày tháng hoặc ngày giờ. Do đó, chúng ta có thể sử dụng hàm này để trả về giá trị ngày giờ, trừ đi một số giờ nhất định.
Ví dụ:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Kết quả:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------------+
Bạn cũng có thể sử dụng các đơn vị ngày và giờ tổng hợp. Ví dụ:bạn có thể làm tất cả giờ và phút trong một lần.
Ví dụ:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE);
Kết quả:
+---------------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) | +---------------------------------------------------------------+ | 2021-04-30 18:30:00 | +---------------------------------------------------------------+
Chỉ ngày qua
Đây là những gì sẽ xảy ra nếu chúng tôi chỉ cung cấp một giá trị ngày:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR);
Kết quả:
+-----------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-04-30 23:00:00 | +-----------------------------------------+
Nó giả định thời gian bắt đầu lúc 00:00:00 và vì vậy HOUR
số tiền được trừ vào đó.
Nhiều giờ
Nếu bạn cần trừ nhiều hơn một giờ, chỉ cần sử dụng số đó thay vì 1
. Tuy nhiên, HOUR
từ khóa vẫn không thuộc số nhiều bất kể:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Kết quả:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 08:00:00 | +--------------------------------------------------+
Toán tử phép trừ (-
)
Một cách khác để trừ giờ khỏi biểu thức ngày giờ là sử dụng toán tử phép trừ (-
), còn được gọi là toán tử trừ.
Ví dụ:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR;
Kết quả:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
Toán tử bổ sung (+
)
Ngoài ra, bạn có thể sử dụng toán tử bổ sung (+
) cùng với một số tiền âm.
Ví dụ:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR;
Kết quả:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Các cách khác để trừ số giờ
Dưới đây là một số phương pháp khác mà bạn có thể sử dụng để trừ một hoặc nhiều giờ cho giá trị ngày giờ:
-
ADDTIME()
(cung cấp số tiền âm sẽ trừ số tiền đó khỏi giá trị ngày giờ). -
SUBDATE()
hàm (đây là từ đồng nghĩa vớiDATE_SUB()
khi được sử dụng với cùng một cú pháp). -
DATE_ADD()
(cung cấp số tiền âm sẽ trừ số tiền đó khỏi giá trị ngày giờ). -
ADDDATE()
(cung cấp số tiền âm sẽ trừ số tiền đó khỏi giá trị ngày giờ).