Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
There is no fixed number of days in a MONTH interval. DATE_SUB is mostly just decrementing the number in the months position of the date provided. So DATE_SUB('2020-09-14', INTERVAL 3 MONTH) is '20...
Answer
#1: Initial revision
There is no fixed number of days in a `MONTH` interval. `DATE_SUB` is mostly just decrementing the number in the months position of the date provided. So `DATE_SUB('2020-09-14', INTERVAL 3 MONTH)` is `'2020-06-14'` and `DATE_SUB('2020-03-14', INTERVAL 3 MONTH)` is `'2019-12-14'`. [The documentation](https://dev.mysql.com/doc/refman/8.0/en/expressions.html#temporal-intervals) describes what happens in edge cases like `DATE_SUB('2020-10-31', INTERVAL 1 MONTH)`: > If you add `MONTH`, `YEAR_MONTH`, or `YEAR` and the resulting date has a day that is larger than the maximum day for the new month, the day is adjusted to the maximum days in the new month So the result of `DATE_SUB('2020-10-31', INTERVAL 1 MONTH)` would be adjusted to `'2020-09-30'`.