MySQL Date_add () كيفية استخدام الشهر في هذا؟
سؤال
مرحبا كل شيء، لدي هذا SQL
SELECT DATE_ADD( '2009-'+ MONTH( NOW() ) +'-01' , INTERVAL -1 MONTH );
لا أستطيع الحصول عليها للعمل، ما الذي أجعله خطأ هنا؟
خزانات للمساعدة.
المحلول
SELECT CONCAT_WS('-', '2009', MONTH(NOW()), '01') - INTERVAL 1 MONTH
نصائح أخرى
إنها تسلسل التاريخ الذي لا يعمل. يقوم بتحويل السلاسل إلى الأرقام، لذلك يمكنك الحصول على 2009 + 11 +1 = 2019، والذي فشل في التحويل إلى موعد.
بدلا من التمسك بتاريخ من الأوتار، يمكنك استخدام وظيفة Last_day للحصول على اليوم الأخير من الشهر الحالي، أضف يوم واحد للوصول إلى اليوم التالي من الشهر التالي، ثم اطرح شهرين للوصول إلى اليوم الأول من الشهر الماضى:
select last_day(now()) + interval 1 day - interval 2 month;
بالإضافة إلى مشغل حسابي، يجب عليك استخدام concat.
SELECT DATE_ADD( concat('2009-',MONTH(NOW()),'-01') , INTERVAL -1 MONTH )
أو أفضل
select date(now()) - interval day(NOW())-1 day - interval 1 month;
(هذا سيعمل أيضا في عام 2010)
لا تنتمي إلى StackOverflow