ورود

View Full Version : سوال: مشکل با دستور if در یک query



woeful
جمعه 27 اردیبهشت 1392, 12:45 عصر
سلام

من یک ستون به نام hour در جدول دیتابیسم دارم که چندمین روز از سال رو برای اون رکورد نشون میده حالا من میخام با توجه به ستون hour و روز فعلی سال دوتا query جدا از دیتابیس بگیرم مثلا به صورت زیر :


if(($now - hour) >= 0)) then // اگر اختلاف روز فعلی و روز ثبت شده مثبت بود با توجه به شرایط زیر رکورد را انتخاب کن
where ($now - hour) > 10 // اگر اختلاف بین روز فعلی و روز ثبت شده بزرگتر از ۱۰ بود به طور کلی اگر ۱۰ روز از ساخت رکورد گذشته بود
else //اگر اختلاف بین روز فعلی و روز ثبت شده منفی بود
where (($now+365) - hour) > 10

آیا همچین query میشه گرفت ( باید بشه چون در غیر این صورت مجبورم تک تک رکورد ها رو چک کنم!!!!!! )

ممنون
Woeful

woeful
دوشنبه 30 اردیبهشت 1392, 16:34 عصر
سلام

ینی کسی نمیدونه!!!

امیـرحسین
جمعه 03 خرداد 1392, 21:09 عصر
من هدف شما رو نفهمیدم (شاید راه بهتری وجود داشته باشه) ولی اگر hour روز در سال باشه (001 تا 366):
SELECT 1 FROM tbl
WHERE
IF(DATE_FORMAT(NOW(), '%j') - hour >= 0,
DATE_FORMAT(NOW(), '%j') - hour > 10,
DATE_FORMAT(NOW() + INTERVAL 1 YEAR, '%j') - hour > 10)

امیـرحسین
جمعه 03 خرداد 1392, 21:15 عصر
اینم فشرده‌ش:
SELECT 1 FROM tbl
WHERE DATE_FORMAT(NOW() + INTERVAL (DATE_FORMAT(NOW(), '%j') - hour >= 0, 0, 1) YEAR, '%j') - hour > 10