(8.0.32)
https://blog.peacois.me/archives/171
https://dev.mysql.com/doc/refman/8.0/ja/date-and-time-functions.html
select date_add('2023-03-31', interval -1 month);
+-------------------------------------------+
| date_add('2023-03-31', interval -1 month) |
+-------------------------------------------+
| 2023-02-28 |
+-------------------------------------------+
select date_add('2023-02-28', interval 1 month);
+------------------------------------------+
| date_add('2023-02-28', interval 1 month) |
+------------------------------------------+
| 2023-03-28 |
+------------------------------------------+
(19c)
https://blog.ricemountainer.net/posts/2016/440934217/
select add_months(to_date('20230331','YYYYMMDD'),-1) from dual;
ADD_MONT
--------
23-02-28
select add_months(to_date('20230228','YYYYMMDD'),1) from dual;
ADD_MONT
--------
23-03-31
★add_months関数の場合、月末の1か月後は自動で月末になる
select to_date('20230331','YYYYMMDD') + interval '-1' month from dual;
行1でエラーが発生しました。:
ORA-01839: 指定された月に対して日付が無効です
select to_date('20230228','YYYYMMDD') + interval '1' month from dual;
TO_DATE(
--------
23-03-28
(15)
https://www.postgresql.jp/document/14/html/functions-datetime.html
select date '2023-03-31' + interval '-1 month';
?column?
---------------------
2023-02-28 00:00:00
select date '2023-02-28' + interval '1 month';
?column?
---------------------
2023-03-28 00:00:00
(2022)
https://learn.microsoft.com/ja-jp/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-ver16
select dateadd(month,-1,'2023-03-31');
2023-02-28 00:00:00.000
select dateadd(month,1,'2023-02-28');
2023-03-28 00:00:00.000