PDA

View Full Version : سوال: مشکل در مقایسه تاریخ ذخیره شده در پایگاه داده به صورت رشته مثلا 89,1,2 بزرگ تر است از 89,1,11



farhadsoft
پنج شنبه 20 مرداد 1390, 01:53 صبح
سلام دوستان
من به همچین مشکلی برخوردم که تاریخ به صورت string در پایگاه داده ذخیره شده
زمانی که می خوام رکورد های ذخیره شده بر حسب تاریخ رو select کنم نتیجه اشتباه میشه
مثلا

select id,price from mytable where todaydate>="89,1,1" and todaydate<="89,1,11"


در فیلد تودی دیت تاریخ دقیقا به همین صودت و به فرمت استرینگ هست ولی در مقایسه بالا 89,1,11 کوچکتر از 89,1,2 در نظر گرفته میشه و 89,1,2 سلکت نمیشه
دو ستان ممنون میشم راهنمایی کنید

ya30ien2
پنج شنبه 20 مرداد 1390, 02:01 صبح
شما اول دو تا رشته رو بگیر و بعد با دستور CompareTo با هم مقایسشون کن

Legend M.A.R
پنج شنبه 20 مرداد 1390, 02:56 صبح
بهتره تاریخ رو به جای اینکه به صورت 89,1,2 بنویسی به صورت 89,01,02 بنویسی اینطوری مشکلت حل میشه

xcomlock
پنج شنبه 20 مرداد 1390, 04:08 صبح
بهتره تاریخ رو به جای اینکه به صورت 89,1,2 بنویسی به صورت 89,01,02 بنویسی اینطوری مشکلت حل میشه
بهتره کاراکتره (,) رو هم حذف کنی و تاریخ رو اینطوری بنویسی 890102 . اینطوری SQL راحت میتونه تاریخ ها رو مقایسه کنه و برای جدا کردن اعداد از توابع String استفاده کن. مثلا :

string date = "890102";
string year, month, day;
year = date.Substring(0, 2);
month = date.Substring(2, 2);
day = date.Substring(4, 2);

hamzeh241
پنج شنبه 20 مرداد 1390, 10:52 صبح
fبا سلام
نظر دوستان به جای خودش درسته ولی بیا یکبار برای همیشه خودت راحت کن. وقتی می خوای یک تاریخ شمسی رو تو دیتا بیس ذخیره کنی قبلش یک فیلد دیگه با فرمتdatetime به دیتا بیس اضافه کن همزمان با درج تاریخ شمسی تاریخ میلادی رو هم درج کن دیگه اون وقت مشکلات این قرتی بازی رو برای مقایسه نداری!
یاد باشه مایکروسافت برای ما ایرانی ها هیچ کاری نمی کنه این ببین بد نیست
http://barnamenevis.org/showthread.php?293317-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%AF%D9%88-%D8%B2%D9%85%D8%A7%D9%86&p=1288821&highlight=#post1288821

farhadsoft
پنج شنبه 20 مرداد 1390, 11:19 صبح
سلام به دوستان و ممنونم ازهمتون
خودم به همین نتیجه Legend رسیده بودم
چون پروژه ام حجم بالای داره با این روش زود تر به نتیجه میرسم

sadra1234
پنج شنبه 20 مرداد 1390, 13:57 عصر
سلام
تاریخ رو به صورت 89/02/01 ذخیره کنی هم میشه
برای انتخاب بین دو تاریخ هم از <=> استفاده کنی بهترین نتیجه رو می گیری
موفق باشید