با استفاده از توابع DATEADD، DATEDIFF، CURRENT_DATE و EXTRACT یک پرس‌وجو بنویسید که برای هر رکورد جدول orders (با ستون‌های order_id، order_date و delivery_date) تعداد روزهای بین سفارش و تحویل را محاسبه کند، فقط سفارش‌هایی را نمایش دهد که در ۳۰ روز گذشته ثبت شده‌اند و یک ستون جدید به نام expected_delivery با مقدار order_date به‌علاوه ۷ روز نشان دهد.

4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:59

0.0

برای حل این مسئله از توابع تاریخ و زمان در SQL استفاده کنید: از DATEDIFF(day, order_date, delivery_date) برای محاسبه اختلاف به روز بین تاریخ‌ها، از CURRENT_DATE یا GETDATE() برای فیلتر کردن سفارش‌های ثبت‌شده در ۳۰ روز گذشته (مثلاً DATEDIFF(day, order_date, CURRENT_DATE)

توسط پژوهشگر در 202 روز قبل ساعت 02:59
دسته بندی ها: SQL SQL for beginner
nima در 202 روز قبل ساعت 07:50

نکتهٔ کلیدی این است که از DATEDIFF(day, order_date, CURRENT_DATE) <= 30 برای فیلتر سفارش‌های ثبت‌شده در ۳۰ روز گذشته استفاده کنید. برای محاسبه تفاوت روزها بین سفارش و تحویل از DATEDIFF(day, order_date, delivery_date) استفاده کنید تا تعداد روزها نمایش داده شود. ستون جدید expected_delivery را با DATEADD(day, 7, order_date) محاسبه کنید تا یک روز تحویلِ منتظَر (۷ روز بعد از سفارش) نشان داده شود. توجه کنید که بسته به موتور DB شما ممکن است CURRENT_DATE با GETDATE() یا تابع‌های EXTRACT متفاوت باشد و در برخی محیط‌ها باید از EXTRACT(DAY FROM order_date) یا ترکیب‌های مشابه استفاده شود؛ همچنین مقادیر NULL در order_date یا delivery_date را در نظر بگیرید.

گزارش

1 پاسخ

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

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