با استفاده از تابع TIMESTAMPDIFF در MySQL تعداد روز بین ستون start_date و end_date برای هر سطر جدول orders محاسبه کنید و نتیجه را همراه با order_id نمایش دهید.

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

0.0

برای حل این مسئله از تابع TIMESTAMPDIFF استفاده کنید؛ ساختار کلی: TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2). برای محاسبه اختلاف به روز از unit برابر DAY استفاده کنید: SELECT order_id, TIMESTAMPDIFF(DAY, start_date, end_date) AS days_diff FROM orders;. دقت کنید ترتیب آرگومان‌ها مهم است (end_date منهای start_date)، مقادیر NULL باید مدیریت شوند و در صورت نیاز از DATE() برای حذف بخش زمانی یا از ABS() برای گرفتن فاصله مطلق استفاده کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:22
دسته بندی ها: MySQL MySQL for beginner
nima در 201 روز قبل ساعت 06:40

TIMESTAMPDIFF(DAY, start_date, end_date) اختلاف روزها را بین دو تاریخ می‌گیرد و ترتیب آرگومان‌ها مهم است. اگر یکی از ستون‌ها NULL باشد، نتیجه برای آن سطر NULL می‌شود؛ می‌توانید از COALESCE(end_date, start_date) یا IFNULL استفاده کنید تا خطا پیش نیاید. برای به دست آوردن تفاوت بدون در نظر گرفتن زمان، می‌توانید DATE(start_date) و DATE(end_date) را به کار ببرید یا از DATEDIFF(end_date, start_date) استفاده کنید. اگر می‌خواهید فاصله مطلق باشد یا خروجی غیرمنفی باشد، از ABS(...) یا شرط مناسب استفاده کنید.

گزارش

1 پاسخ

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

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