با استفاده از تابع TO_DAYS در MySQL، تمام رکوردهای جدول orders را که بیشتر از 30 روز از مقدار ستون order_date آنها گذشته است انتخاب کنید.
4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:26 0.0
برای حل این سؤال از TO_DAYS میتوان اختلاف روزها را محاسبه کرد؛ مثلاً WHERE TO_DAYS(CURDATE()) - TO_DAYS(order_date) > 30 یا نوشته معادل WHERE TO_DAYS(order_date)
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از TO_DAYS برای محاسبه فاصله زمانی کار میکند، اما نگهداری و خوانایی کمتری دارد. پیشنهاد میشود از DATEDIFF(CURDATE(), order_date) > 30 استفاده کنید تا تفاوت روزها به صورت مستقیم محاسبه شود. اگر همچنان میخواهید با TO_DAYS بمانید، به تفاوت بین CURDATE() و order_date با دقت نگاه کنید تا ساعات دخیل نباشند. همچنین برای کارایی بهتر از ایندکس روی order_date استفاده کنید یا شرط را به شکل order_date < DATE_SUB(NOW(), INTERVAL 30 DAY) بنویسید.
گزارش