با استفاده از تابع DATE_SUB در MySQL یک پرسوجو بنویسید که تمام سفارشهای جدول orders را نمایش دهد که تاریخ ثبتشان بیش از 30 روز پیش بوده است.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:12 0.0
برای حل این مسئله از DATE_SUB همراه با NOW() یا CURDATE() استفاده کنید، مثلاً WHERE order_date < DATE_SUB(NOW(), INTERVAL 30 DAY). مطمئن شوید ستون order_date از نوع DATE یا DATETIME است و در صورت نیاز NULLها را فیلتر کنید. نکات: برای کارایی از ایندکس روی ستون تاریخ استفاده کنید و بین NOW() و CURDATE() بسته به نیاز به زمان دقیق (ساعت) یا فقط تاریخ انتخاب کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای نمایش سفارشهایی که ثبتشان بیش از 30 روز قبل است، از شرط WHERE order_date < DATE_SUB(NOW(), INTERVAL 30 DAY) استفاده کنید. اگر order_date از نوع DATETIME است و به زمان دقیق نیاز دارید، از NOW() استفاده کنید؛ اگر فقط تاریخ مدنظر است CURDATE() به کار ببرید تا با زمان مطابقت نداشته باشد. همچنین برای کارایی، روی ستون order_date ایندکس مناسب ایجاد کنید و NULLها را در صورت وجود فیلتر کنید. در صورت نیاز به نادیدهگرفتن زمان، میتوانید از DATE(order_date) در شرط استفاده کنید.
گزارش