MySQL có PERIOD_ADD()
cho phép bạn thêm một số tháng vào một khoảng thời gian nhất định. Nó trả về một giá trị ở định dạng YYYYMM .
Bài viết này cung cấp các ví dụ để chứng minh cách nó hoạt động.
Cú pháp
Cú pháp như sau:
PERIOD_ADD (P, N)
Ở đâu P
là khoảng thời gian và N
là số tháng cần thêm.
Lưu ý rằng, mặc dù hàm này dường như đang thêm tháng vào một ngày, nhưng đối số khoảng thời gian thực sự không phải là một giá trị ngày.
Ví dụ 1 - Cách sử dụng cơ bản
Đây là một ví dụ cơ bản.
CHỌN PERIOD_ADD (202101,2);
Kết quả:
+ ---------------------- + | PERIOD_ADD (202101,2) | + ---------------------- + | 202103 | + ---------------------- +
Vì vậy, trong trường hợp này, chúng tôi đã thêm hai tháng vào khoảng thời gian.
Ví dụ 2 - Giá trị phủ định
Dưới đây là một ví dụ thêm số tháng âm.
CHỌN PERIOD_ADD (202101, -2);
Kết quả:
+ ----------------------- + | PERIOD_ADD (202101, -2) | + ----------------------- + | 202011 | + ----------------------- +
Ví dụ 3 - Năm hai chữ số
Ví dụ này sử dụng thành phần năm gồm hai chữ số.
CHỌN PERIOD_ADD (2101,2);
Kết quả:
+ -------------------- + | PERIOD_ADD (2101,2) | + -------------------- + | 202103 | + -------------------- +
Bạn sẽ nhận thấy rằng kết quả vẫn sử dụng năm bốn chữ số (mặc dù chúng tôi đã cung cấp đối số khoảng thời gian là năm có hai chữ số).
Ví dụ 4 - Sử dụng Ngày hiện tại
Ví dụ này lấy khoảng thời gian từ ngày hiện tại. Sau đó, nó thêm một tháng vào khoảng thời gian đó.
CHỌN CURDATE () làm 'Ngày hiện tại', EXTRACT (YEAR_MONTH TỪ CURDATE ()) làm 'Giai đoạn hiện tại', PERIOD_ADD (EXTRACT (YEAR_MONTH TỪ CURDATE ()), 1) LÀM 'Giai đoạn tiếp theo';
Kết quả:
+ -------------- + ---------------- + ------------- + | Ngày hiện tại | Thời kỳ hiện tại | Tiết sau | + -------------- + ---------------- + ------------- + | 2018-06-30 | 201806 | 201807 | + -------------- + ---------------- + ------------- +
Ví dụ 5 - Ví dụ về Cơ sở dữ liệu
Đây là một ví dụ truy vấn cơ sở dữ liệu.
SỬ DỤNG sakila; CHỌN ngày_thông_dục làm 'Ngày thanh toán', TRÍCH (NĂM_MONTH TỪ ngày thanh toán) làm 'Kỳ hạn thanh toán', PERIOD_ADD (TRÍCH (NĂM_MONTH TỪ ngày thanh toán), 12) NHƯ 'Thanh toán tiếp theo' Thanh toán FROMWHERE thanh toán_id =1;Kết quả:
+ --------------------- + ---------------- + ------- ------- + | Ngày thanh toán | Kỳ thanh toán | Thanh toán tiếp theo | + --------------------- + ---------------- + ------- ------- + | 2005-05-25 11:30:37 | 200505 | 200605 | + --------------------- + ---------------- + -------- ------ +