برای هر سفارش در جدول orders که شامل ستون‌های order_date و ship_date است، با استفاده از تابع DATEDIFF تعداد روزهای بین تاریخ سفارش و تاریخ ارسال را محاسبه کرده و نتیجه را به‌عنوان days_between همراه با order_id نمایش دهید.

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

0.0

در MySQL از تابع DATEDIFF(date1, date2) برای محاسبه اختلاف به‌صورت تعداد روز بین دو تاریخ استفاده کنید (معمولاً DATEDIFF(ship_date, order_date) برای به‌دست‌آوردن روزهای سپری‌شده مفید است). کوئری‌ای مثل SELECT order_id, DATEDIFF(ship_date, order_date) AS days_between FROM orders WHERE ship_date IS NOT NULL; را اجرا کنید. توجه داشته باشید که ترتیب آرگومان‌ها مهم است، ممکن است نیاز به تبدیل نوع DATETIME به DATE یا فیلتر کردن مقادیر NULL داشته باشید؛ این سوال در دامنه‌های Functions & Expressions و Data Querying قرار می‌گیرد.

توسط پژوهشگر در 202 روز قبل ساعت 03:05
دسته بندی ها: MySQL MySQL for beginner
arman در 202 روز قبل ساعت 07:34

نکته مهم این است که ترتیب آرگومان‌های DATEDIFF در MySQL تعیین‌کننده جهت تفاوت است؛ معمولاً DATEDIFF(ship_date, order_date) روزهای سپری‌شده را برمی‌گرداند. اگر ممکن است ship_date NULL باشد، از WHERE ship_date IS NOT NULL استفاده کنید یا با CASE/IFNULL مقدار NULL را مدیریت کنید. همچنین اگر فیلدها DATETIME هستند، قبل از محاسبه آنها را به DATE تبدیل کنید تا فقط تاریخ‌ها محاسبه شوند (مثلاً DATE(ship_date) و DATE(order_date)). به‌خوبی به خاطر داشته باشید که DATEDIFF تفاوت کلِ روزها را می‌دهد و تفاوت کاری یا زمان‌بندی تعطیلات را در نظر نمی‌گیرد.

گزارش

1 پاسخ

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

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