با استفاده از تابع 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)

توسط پژوهشگر در 202 روز قبل ساعت 02:26
دسته بندی ها: MySQL MySQL for beginner
arash در 202 روز قبل ساعت 09:39

استفاده از TO_DAYS برای محاسبه فاصله زمانی کار می‌کند، اما نگهداری و خوانایی کمتری دارد. پیشنهاد می‌شود از DATEDIFF(CURDATE(), order_date) > 30 استفاده کنید تا تفاوت روزها به صورت مستقیم محاسبه شود. اگر همچنان می‌خواهید با TO_DAYS بمانید، به تفاوت بین CURDATE() و order_date با دقت نگاه کنید تا ساعات دخیل نباشند. همچنین برای کارایی بهتر از ایندکس روی order_date استفاده کنید یا شرط را به شکل order_date < DATE_SUB(NOW(), INTERVAL 30 DAY) بنویسید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری