PDA

View Full Version : جستجوی تاریخ درج شده به صورت yyyy-mm-dd



mohammad-gh
پنج شنبه 03 شهریور 1390, 15:06 عصر
با سلام
در دیتابیس بانکم تاریخ رو به صورت yyyy-mm-dd ذخیره کرده ام
حالا می خواهم
1- مثلا واریزیهای بین این دوتاریخ رو بدست بیارم
2- یا در بین کاربران کسانی رو که ماه تولدشان 06 هست رو پیدا کنم
3- بر اساس تاریخ تولد ثبت شده در اطلاعات کاربری کسانی رو که سن بالاتر از 20 رو دارمن پیدا کنم (یعنی کسانی رو که تاریخ امروز منهای تاریخ تولدشان میشه 20 رو )
امیدورام راهنمایی نمایید

blackmak
پنج شنبه 03 شهریور 1390, 15:53 عصر
شما تارخ رو اینطوری برسز تو db :
13900503
بعد بنویس
where ( date > 13900401 and date < 13900501)
این یعنی ماه 4
فقط تو db ستون Date بزار longint

HamidTatalo
پنج شنبه 03 شهریور 1390, 16:21 عصر
فقط تو db ستون Date بزار longint

بهتره از همین روش عددی استفاده کنی . البته به جای longint بنظرم بهتره از int 10 استفاده کنید

blackmak
پنج شنبه 03 شهریور 1390, 16:28 عصر
گفتم شاید بعد بخواد ساعت هم اضافه کنه .
139005031640

mohammad-gh
پنج شنبه 03 شهریور 1390, 18:27 عصر
سلام وتشکر
دوستان من این روش رو بلدم ،‌
الان داده هام به صورتی (فرمتی )که گفتم وارد شده اند و کاریش نمیشه کرد
تگر ممکنه فکری برای یافتن راه حل با این فرمت کنید

amin1softco
پنج شنبه 03 شهریور 1390, 18:41 عصر
خوب همینطوری فراخوانی کن مشکلی نداره که تاریخم با همون فرمت خودت بنویس

WHERE [date] BETWEEN {'$d1'} AND {'$d2'}

blackmak
پنج شنبه 03 شهریور 1390, 23:36 عصر
اگه امکانش هست داده های قدیمیتو به شکل جدید در بیاری (اگه جایی error ایجاد نمیشه) میتونی یه convertor بنویسی که تمامی داده هات از فرمت قدیمی به فرمت جدید در بیاد و از این به بعد به شیوه جدید insert کنی .

HamidTatalo
جمعه 04 شهریور 1390, 10:12 صبح
خوب دوست عزیز میتونی تو همین فرمت برای مقایسه سال ، تاریخت رو هم جدا کرده و مثلا سالها رو با هم مقایسه کنی

mohammad-gh
جمعه 04 شهریور 1390, 12:40 عصر
WHERE [date] BETWEEN {'$d1'} AND {'$d2'}

من این دستور رو قبلا آزمایش کردم اما جواب نداد
در ضمن باز هم با این نمیشه جستجو رو بین سالها یا ماههای یک تاریخ محدود کرد

خوب دوست عزیز میتونی تو همین فرمت برای مقایسه سال ، تاریخت رو هم جدا کرده و مثلا سالها رو با هم مقایسه کنی
ممنون از راهنمایی همه دوستان
من تقریبا مشکلم همینه
میشه تو دستور select طوری نوشت که فقط ماههای تاریخ رو جستجو کنه ؟ چطور!
مثلا بگیم جستجو کن تمام کسانی رو که در ماه 06 متواد شده اند

amin1softco
جمعه 04 شهریور 1390, 14:48 عصر
عزیزه من من تست کردم کار داد ولی خوب این صفحه (http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html) رو چک کن همه چیز رو می شه جدا کرد!!!!
به این شکل هم می شه تبدیلش کرد
SELECT DATE_FORMAT(value, '%Y%m%d') AS date_ymd FROM table_name;