نقل قول: جستجو براساس تاریخ
میتونم بپرسم با چه منطقی تصور کردید که یه رشته میتونه از رشته دیگری از لحاظ Value کوچکتر یا بزرگتر باشه؟
مقادیر رشته ای در SQl با NvarChar (و چندمورد دیگه) شناخته میشه! بنابراین نباید انتظار داشته باشید که همانند یک DateType برای شما عمل کنه ..
برای حل این مشکل کافیه تاریخ مورد نظر رو ابتدا به DateTime تبدیل سپس استفاده کنید.
با تشکر
نقل قول: جستجو براساس تاریخ
نقل قول:
نوشته شده توسط
salehbagheri
میتونم بپرسم با چه منطقی تصور کردید که یه رشته میتونه از رشته دیگری از لحاظ Value کوچکتر یا بزرگتر باشه؟
مقادیر رشته ای در SQl با NvarChar (و چندمورد دیگه) شناخته میشه! بنابراین نباید انتظار داشته باشید که همانند یک DateType برای شما عمل کنه ..
برای حل این مشکل کافیه تاریخ مورد نظر رو ابتدا به DateTime تبدیل سپس استفاده کنید.
با تشکر
دوست عزيز من دارم از همين متد (Char) استفاده ميكنم توي برنامه هام و بدون مشكل اينكارو ميكنم حتي بين 2 تاريخ نيز جستوجو ميكنم تا به حال هم مشكلي واسم پيش نيومده
نقل قول: جستجو براساس تاریخ
نقل قول:
نوشته شده توسط
ali_najari
دوست عزيز من دارم از همين متد (Char) استفاده ميكنم توي برنامه هام و بدون مشكل اينكارو ميكنم حتي بين 2 تاريخ نيز جستوجو ميكنم تا به حال هم مشكلي واسم پيش نيومده
این روش خیلی اصولی نیست. خودت که بهتر میدانی، برای مقایسه رشته، کاراکتر به کاراکتر به Ascii تبدیل و مقایسه میشه که احمال خطا برای مقایسه تاریخ در اون وجود داره. و روش اصولی تر استفاده از نوع تاریخ است.
اما اگر دقت کرده باشی این دوستمون تاریخ را به این صورت نوشته 8/8/89 تا 10/8/89 خب این که کاملا غلطه.
چرا؟
خیلی ساده
8/89
بزرگتر است یا
10/89؟
اگر از منطق انسانی استفاده کنیم، بله 10/89 بزرگتر است چون تاریخ است اما وقتی به کد اسکی تبدیل شود خیلی ساده است که 8 از 1 بزرگتر است بنابراین 8/89 از 10/89 بزرگتر است که کاملا اشتباه است.
اگر هم می خواهید از تاریخ به صورت رشته استفاده کنید، باید برای آن قالب کاملتری در نظر بگیرید. یعنی به این صورت تاریخ را ذخیره کنید: 08/08/1389 و 08/10/1389. حالا اگر مقایسه کنید مشکل بالا به وجود نمی آید و تاریخ ها درست مقایسه می شوند.
نقل قول: جستجو براساس تاریخ
بله mani جان من خودم هم از روش 10/08/1389 براي ذخيره سازي استفاده ميكنم
ميدونم اشتباه هست ولي خوب راهي وجود نداره براي ذخيره سازي تاريخ شمسي با قالب Date و مجبوريم از اين روش استفاده كنم
چرا يك روش وجود داره و اونم اينكه تاريخ رو بصورت ميلادي وارد كني و بعد تبديل كني كه اينطوري ميزان تبديل كردن ها زياد ميشه
نقل قول: جستجو براساس تاریخ
نقل قول:
نوشته شده توسط
ali_najari
چرا يك روش وجود داره و اونم اينكه تاريخ رو بصورت ميلادي وارد كني و بعد تبديل كني كه اينطوري ميزان تبديل كردن ها زياد ميشه
من از این روش استفادی میکنم ، مشکلی هم ندارم. دوتا تابع عمومی نوشتم، موقع فراخوانی تاریخ را به یکی از اونها میفرستم تا تبدیل بشه و نمایش داده بشه و موقع ذخیره هم به یک تابع دیگه فرستاده میشه تا به میلادی تبدیل بشه . مشکلی نداشتم . اما این مزیت را داره که تو همون فیلد علاوه بر تاریخ زمان را هم میتواند ذخیره کنید برای روز مبادا :لبخند:
نقل قول: جستجو براساس تاریخ
اول تاریخ رو از نوع date ذخیره کردم ولی مشکل توی نمایش اونه که به این شکله
1389/08/08
نقل قول: جستجو براساس تاریخ
نقل قول:
نوشته شده توسط
ali_najari
من خودم هم از روش 10/08/1389 براي ذخيره سازي استفاده ميكنم
من هم از این روش استفاده میکنم . تا حالا به مشکلی بر نخوردم.
نقل قول:
نوشته شده توسط
Mani_rf
اما این مزیت را داره که تو همون فیلد علاوه بر تاریخ زمان را هم میتواند ذخیره کنید برای روز مبادا :لبخند:
مگه تو حالت string نمیشه time رو هم ذخیره کرد؟
البته من Time رو تو یه فیلد جدا میریزم .
نقل قول:
نوشته شده توسط
a1b2uu
اول تاریخ رو از نوع date ذخیره کردم ولی مشکل توی نمایش اونه که به این شکله
1389/08/08
این شکل مگه چه مشکلی داره؟ درستش همینه.
نقل قول: جستجو براساس تاریخ
دوستان همیشه سعی کنید هر چیزی را در DataType مخصوص خودش استفاده کنید.
گرچه ممکنه امروز به مشکلی بر نخورید ولی روزی که خواستید تغییراتی در میلیونها فیلد تاریخ ایجاد کنید متوجه اشتباه بزرگتون میشوید ...
نظر شخصی من این هست که تاریخ شمسی رو هیچگاه در پایگاه داده ذخیره نکنید بلکه معادل اون رو در میلادی ذخیره کنید.
یا اگر خیلی اصرار بر ذخیره تاریخ شمسی در DB دارید روز و ماه و سال رو جداگانه در فیلد int ذخیره کنید.
با تشکر
نقل قول: جستجو براساس تاریخ
نقل قول:
دوستان همیشه سعی کنید هر چیزی را در DataType مخصوص خودش استفاده کنید.
گرچه ممکنه امروز به مشکلی بر نخورید ولی روزی که خواستید تغییراتی در میلیونها فیلد تاریخ ایجاد کنید متوجه اشتباه بزرگتون میشوید ...
نظر شخصی من این هست که تاریخ شمسی رو هیچگاه در پایگاه داده ذخیره نکنید بلکه معادل اون رو در میلادی ذخیره کنید.
یا اگر خیلی اصرار بر ذخیره تاریخ شمسی در DB دارید روز و ماه و سال رو جداگانه در فیلد int ذخیره کنید.
سلام دوست عزيز روش شما روش خوبي است اما اگه بخواهيم نتايج جستجو را تو ديتاگريد نمايش بديم چه جوري روز و ماه و سال را با هم ادغام كنيم كه به طور مثال به صورت :5/3/1389 نمايش بده:متفکر: