MariaDB cung cấp một số cách để thực hiện số học theo ngày tháng. Điều này bao gồm việc cộng hoặc trừ một tháng (hoặc nhiều tháng) từ một ngày nhất định.
Dưới đây là 6 cách để thêm một tháng vào một ngày trong MariaDB.
Cập nhật phần thưởng :Bây giờ tôi đã thêm cách thứ 7 để thêm một tháng vào một ngày ở cuối bài viết này. Vì vậy, tôi đoán bây giờ là 7 cách để thêm một tháng vào một ngày trong MariaDB 🙂
DATE_ADD()
Chức năng
DATE_ADD()
chức năng cho phép bạn thêm một số tiền vào một ngày. Ví dụ:bạn có thể thêm một số ngày, tuần, tháng, năm, v.v.
Ví dụ:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);
Kết quả:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
Nếu bạn cần thêm nhiều tháng, chỉ cần sử dụng số đó thay vì 1
. Tuy nhiên, MONTH
từ khóa vẫn không thuộc số nhiều bất kể:
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);
Kết quả:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 2 MONTH) | +------------------------------------------+ | 2021-07-01 | +------------------------------------------+
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ố ngày nhất định, chẳng hạn như 30 hoặc 31.
Ví dụ:
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);
Kết quả:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 31 DAY) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
Khi sử dụng ngày, liệu nó có hoạt động chính xác là một tháng hay không sẽ phụ thuộc vào tháng được đề cập. Trong ví dụ trên, tôi có thể cung cấp 30 ngày, nhưng điều đó sẽ giữ chúng tôi trong cùng một tháng:
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);
Kết quả:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 30 DAY) | +-----------------------------------------+ | 2021-05-31 | +-----------------------------------------+
Vì vậy, nếu bạn thực sự muốn thêm một tháng, thì MONTH
đơn vị dễ dàng hơn nhiều so với việc cố gắng tìm ra bao nhiêu ngày để thêm.
ADDDATE()
Chức năng
Một cách khác để thêm một tháng vào một ngày 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. Cú pháp khác giống 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ới DATE_ADD()
.
Ví dụ:
SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);
Kết quả:
+-----------------------------------------+ | ADDDATE('2021-05-01', INTERVAL 1 MONTH) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
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', INTERVAL -1 MONTH);
Kết quả:
+-------------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL -1 MONTH) | +-------------------------------------------+ | 2021-06-01 | +-------------------------------------------+
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', INTERVAL -1 MONTH);
Kết quả:
+------------------------------------------+ | SUBDATE('2021-05-01', INTERVAL -1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
+
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 nó vào các ngày, cùng với đơn vị ngày / giờ hiện hành để thêm một số tháng nhất định vào ngày của chúng ta.
Ví dụ:
SELECT '2021-05-01' + INTERVAL 1 MONTH;
Kết quả:
+---------------------------------+ | '2021-05-01' + INTERVAL 1 MONTH | +---------------------------------+ | 2021-06-01 | +---------------------------------+
-
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' - INTERVAL -1 MONTH;
Kết quả:
+----------------------------------+ | '2021-05-01' - INTERVAL -1 MONTH | +----------------------------------+ | 2021-06-01 | +----------------------------------+
Phần thưởng:ADD_MONTHS()
Chức năng
Kể từ lần đầu tiên tôi viết bài này, một chức năng mới đã được đưa vào MariaDB đặc biệt để thêm tháng vào một ngày.
Hàm được gọi là ADD_MONTHS()
, và nó đã được giới thiệu trong MariaDB 10.6.1 để nâng cao khả năng tương thích với Oracle.
Vì vậy, tôi đoán bài viết này nên được gọi là 7 cách để thêm một tháng vào ngày… 🙂
Ví dụ:
SELECT ADD_MONTHS('2020-01-01', 3);
Kết quả:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Các đơn vị ngày và giờ khác
Các ví dụ trên thêm một số tháng vào ngày, 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 hàm và toán tử ở trên.