چطور میشه نزدیکترین تاریخ به امروز رو انتخاب کرد؟؟

sanecity

Member
سلام به همه دوستان
من توی دیتابیس کلی تاریخ سیو کردم هم گذشته هم آینده هیچ ترتیب خاصی هم نداره
مثلا از هفته پیش 2 روزش رو با فرمت مثلا : 22-01-2013 و 20-01-2013 و از این هفته هم 2 روز و از هفته آینده هم مثلا دوروز
حالا چطور میشه نزدیکترین تاریخ به امروز رو انتخاب کرد؟؟
مخم ترکید بس فکریدم ! :green:
مردی اینو حل کن از صدتا معما هم سختره! :cool:
 

Masoud1365

مدیر انجمن
عزیزم شما تاریخ رو اشتباه ذخیره کردید !!! اگر به صورت timestamp ذخیره کنید قدرت مانورتون خیلی بیشتره !
ولی همینطوری هم که ذخیره کردی میشه تاریخ نزدیک بهش رو گرفت فقط الگوریتمش یکمی پیچیده میشه ! ( و البته غیر اصولی )
 

sanecity

Member
خیلی ممنون از پاسختون
البته نوعش date است که میشه روش مانور داد ، چون پروزه قدیمی بود نمیشد فرمتش رو timestamp کرد باید کلی از توابع رو ویرایش میکردم
اما بلاخره موفق شدم :)
بقول شما فقط خیلی پیچیده شد خودمم نفهمیدم چیکار کردم
باید اول بزرگترین تاریخ کمتر از امروز رو بدست بیاریم بعد کوچکترین تاریخ بزرگتر از امروز (تو درک همین جمله آدم مخش هنگ میکنه!)
آخر سر سه تا تاریخ داریم ، گذشته حال و آینده
بقیشم که بایه جمع و تفریق ساده حله هرکدوم باقیمانده کمتری داشت همونه
 

Masoud1365

مدیر انجمن
البته به نظر من راه بهتر این بود که با یک حلقه تقریبا ساده تاریخ ها رو به timestamp تبدیل میکردی بعدش هر کاری دلت میخواست انجام میدادی :دی
 

kassit

Member
خیلی هم سخت نیست دوست عزیز،

شما فقط کافیه "-" (Dash) رو از تاریخ حذف کنید، تبدیل می شه با یه عدد که خیلی راحت می تونه با تاریخ کمتر یا بیشتر از خودش مقایسه بشه.
مثلا امروز 30-01-2013 هست که می شه 20130130 و با یه کوئری ساده و گرفتن بزرگترین تاریخ به شرط اینکه از تاریخ جاری کوکتر باشه SELECT MAX(date) FROM table WHERE date < 20130130 می تونید اولین تاریخ قبل از تاریخ جاری رو بدست بیارید.

در مورد اولین تاریخ بعد از امروز هم همینطوره، فقط شرط برعکس می شه.
 

hqt_2006

New Member
تبدیلش کن رشته

من معمولا واسه این کار تاریخ رو به رشته تبدیل می کنم.
varchar
بعدشم همه چی راحتحل می شه
 

جدیدترین ارسال ها

بالا