برای هر سفارش در جدول orders، با استفاده از تابع TIMESTAMPDIFF تعداد روز بین ستون order_date و delivery_date را محاسبه کرده و نتیجه را به عنوان days_between نمایش دهید.
3.0 بازدید آخرین ویرایش در 203 روز قبل ساعت 02:42 0.0
برای حل این سوال از تابع TIMESTAMPDIFF در MySQL استفاده کنید: TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)؛ برای روز از واحد DAY استفاده کنید، مثلاً SELECT id, TIMESTAMPDIFF(DAY, order_date, delivery_date) AS days_between FROM orders. دقت کنید ترتیب آرگومانها مهم است (ابتدا شروع سپس پایان)، مقدار خروجی عدد صحیح است و ممکن است منفی باشد؛ برای جلوگیری از مقادیر NULL میتوانید از WHERE delivery_date IS NOT NULL یا از COALESCE برای مقداردهی پیشفرض استفاده کنید. این تمرین مربوط به توابع و عبارات و پرسوجوی دادهها است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته: ترتیب آرگومانهای TIMESTAMPDIFF را دقیق رعایت کنید، یعنی DAY, order_date و delivery_date. خروجی ممکن است منفی باشد اگر delivery_date پیش از order_date باشد؛ اگر فقط فاصله مثبت نیاز است، میتوانید از ABS(TIMESTAMPDIFF(DAY, order_date, delivery_date)) استفاده کنید یا شرط order_date <= delivery_date اضافه کنید. برای جلوگیری از NULL در نتیجه، از WHERE delivery_date IS NOT NULL استفاده کنید یا از COALESCE(delivery_date, ...) برای مقدار پیشفرض بهره ببرید. همچنین مطمئن شوید روی ستونهای تاریخ ایندکس مناسبی وجود دارد تا پرسوجو با کارایی بهتری اجرا شود.
گزارش