আসলে, MySQL-এর আচরণ allow_invalid_dates মোডের ওপর নির্ভর করে। যদি এই মোড সক্রিয় থাকে, তবে MySQL অবৈধ তারিখ গ্রহণ করে এবং বৈধ তারিখের মতোই তারিখ গাণিতিক কাজ সম্পাদন করে। অন্যদিকে, যদি মোডটি নিষ্ক্রিয় থাকে, তবে এটি অবৈধ তারিখ গ্রহণ করে না এবং আউটপুট হিসেবে NULL ফেরত দেয়।
mysql> select '2017-02-30' + INTERVAL 7 day; +-------------------------------+ | '2017-02-30' + INTERVAL 7 day | +-------------------------------+ | NULL | +-------------------------------+ 1 row in set, 1 warning (0.00 sec)
এখন allow_invalid_dates মোড সক্রিয় করার পর MySQL অবৈধ তারিখ গ্রহণ করে এবং নিচের মতো তারিখ গাণিতিক কাজ করে:
mysql> set sql_mode = allow_invalid_dates; Query OK, 0 rows affected (0.05 sec) mysql> select '2017-02-30' + INTERVAL 7 day; +-------------------------------+ | '2017-02-30' + INTERVAL 7 day | +-------------------------------+ | 2017-03-09 | +-------------------------------+ 1 row in set (0.00 sec) mysql> select '2017-11-31' + INTERVAL 7 day; +-------------------------------+ | '2017-11-31' + INTERVAL 7 day | +-------------------------------+ | 2017-12-08 | +-------------------------------+ 1 row in set (0.00 sec)