Có nhiều cách để thực hiện số học ngày tháng trong MariaDB. Điều này bao gồm việc cộng hoặc trừ một số lượng nhất định của một phần ngày nhất định khỏi giá trị ngày hoặc giờ.
Trong bài viết này, tôi trình bày 8 cách để thêm một giờ vào giá trị ngày giờ trong MariaDB.
DATE_ADD()
Chức năng
DATE_ADD()
cho phép bạn thêm một số tiền vào biểu thức ngày tháng hoặc ngày giờ. Điều này bao gồm việc thêm các phần thời gian, chẳng hạn như giờ.
Ví dụ:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Kết quả:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
Trong trường hợp này, tôi đã thêm một giờ vào biểu thức ngày giờ.
Đây là những gì sẽ xảy ra nếu tôi chỉ cung cấp ngày:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR);
Kết quả:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-05-01 01:00:00 | +-----------------------------------------+
Phần thời gian được thêm vào kết quả và giả định rằng thời gian ban đầu là 00:00:00
.
Nếu bạn cần thêm nhiều hơn một giờ, chỉ cần sử dụng số đó thay vì 1
. Lưu ý rằng HOUR
từ khóa vẫn không thuộc số nhiều bất kể:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Kết quả:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 12:00:00 | +--------------------------------------------------+
Cũng có thể sử dụng một đơn vị ngày / giờ khác với số lượng thích hợp của đơn vị đó. Do đó, bạn có thể chỉ định một số phút nhất định, chẳng hạn như 60 hoặc 120.
Ví dụ:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE);
Kết quả:
+-----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) | +-----------------------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------------------+
Bạn cũng có thể sử dụng đơn vị ngày / giờ tổng hợp để thêm nhiều đơn vị. Ví dụ:nếu bạn muốn thêm 1 giờ 30 phút, bạn có thể làm như sau:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);
Kết quả:
+--------------------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) | +--------------------------------------------------------------+ | 2021-05-01 11:30:00 | +--------------------------------------------------------------+
Xem Đơn vị ngày và giờ MariaDB để biết danh sách đầy đủ các đơn vị ngày / giờ.
ADDDATE()
Chức năng
Một cách khác để thêm giờ vào biểu thức ngày giờ là sử dụng ADDDATE()
hàm số. Hàm này có hai cú pháp:
- Một cú pháp cho phép bạn thêm một số ngày vào một ngày, đây không phải là những gì chúng tôi đang làm ở đây (trừ khi chúng tôi dự định thêm 24 giờ).
- Cú pháp khác giống như với
DATE_ADD()
chức năng trên. Khi sử dụng cú pháp này,ADDDATE()
là từ đồng nghĩa vớiDATE_ADD()
.
Ví dụ:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Kết quả:
+-------------------------------------------------+ | ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +-------------------------------------------------+ | 2021-05-01 11:00:00 | +-------------------------------------------------+
DATE_SUB()
Chức năng
DATE_SUB()
chức năng cho phép bạn trừ một số tiền cho một ngày. Tuy nhiên, nếu bạn cung cấp một giá trị âm để trừ đi, thì giá trị đó sẽ được thêm vào đến ngày.
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 11:00:00 | +---------------------------------------------------+
SUBDATE()
Chức năng
SUBDATE()
hàm là từ đồng nghĩa với DATE_SUB()
khi sử dụng cú pháp sau.
Ví dụ:
SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR);
Kết quả:
+--------------------------------------------------+ | SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
+
Nhà điều hành
Một tùy chọn khác là sử dụng +
nhà điều hành.
+
toán tử được sử dụng để thực hiện phép cộng và chúng ta có thể sử dụng toán tử này vào ngày tháng, cùng với đơn vị ngày / giờ hiện hành để thêm một số giờ nhất định vào ngày của chúng ta.
Ví dụ:
SELECT '2021-05-01 10:00:00' + INTERVAL 1 HOUR;
Kết quả:
+-----------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------+
-
Nhà điều hành
-
toán tử có thể được sử dụng để trừ một số tiền cho một ngày. Nhưng nếu nó được sử dụng để trừ một số âm, thì kết quả là một số dương được thêm vào ngày:
SELECT '2021-05-01 10:00:00' - INTERVAL -1 HOUR;
Kết quả:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -1 HOUR | +------------------------------------------+ | 2021-05-01 11:00:00 | +------------------------------------------+
ADDTIME()
Chức năng
Bạn có thể sử dụng ADDTIME()
hàm để thêm một số giờ vào biểu thức ngày giờ.
Ví dụ:
SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0');
Kết quả:
+------------------------------------------+ | ADDTIME('2021-05-01 10:30:45', '01:0:0') | +------------------------------------------+ | 2021-05-01 11:30:45 | +------------------------------------------+
Một lợi ích của chức năng này là 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.
SUBTIME()
Chức năng
Ngoài ra, bạn có thể chuyển đổi nó và sử dụng SUBTIME()
với giá trị âm nếu bạn muốn:
SELECT SUBTIME('2021-05-01 10:30:45', '-01:0:0');
Kết quả:
+-------------------------------------------+ | SUBTIME('2021-05-01 10:30:45', '-01:0:0') | +-------------------------------------------+ | 2021-05-01 11:30:45 | +-------------------------------------------+
Các đơn vị ngày và giờ khác
Các ví dụ trên thêm một số giờ vào giá trị ngày giờ, nhưng chúng ta có thể sử dụng các kỹ thuật tương tự để thêm bất kỳ đơn vị ngày / giờ nào. Xem Đơn vị ngày và giờ MariaDB để biết danh sách đầy đủ các đơn vị ngày / giờ có thể được sử dụng với các chức năng và toán tử ở trên.