با استفاده از تابع 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() بسته به نیاز به زمان دقیق (ساعت) یا فقط تاریخ انتخاب کنید.

توسط پژوهشگر در 220 روز قبل ساعت 02:12
دسته بندی ها: MySQL MySQL for beginner
sara در 220 روز قبل ساعت 10:34

برای نمایش سفارش‌هایی که ثبت‌شان بیش از 30 روز قبل است، از شرط WHERE order_date < DATE_SUB(NOW(), INTERVAL 30 DAY) استفاده کنید. اگر order_date از نوع DATETIME است و به زمان دقیق نیاز دارید، از NOW() استفاده کنید؛ اگر فقط تاریخ مدنظر است CURDATE() به کار ببرید تا با زمان مطابقت نداشته باشد. همچنین برای کارایی، روی ستون order_date ایندکس مناسب ایجاد کنید و NULLها را در صورت وجود فیلتر کنید. در صورت نیاز به نادیده‌گرفتن زمان، می‌توانید از DATE(order_date) در شرط استفاده کنید.

گزارش

1 پاسخ

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

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