PDA

View Full Version : سوال: جستجو بین دو تاریخ که به صورت فارسی در sql ذخیره شده



moniradmin
سه شنبه 14 آبان 1387, 09:58 صبح
یک جدول در sql که شامل یک فیلد تاریخ می باشد. تاریخ ها را به صورت فارسی در جدول ثبت کرده ام با استفاده از فایل persia.dll . البته تاریخ رو به صورت شمسی و با حروف فارسی بر می گرداند و با این فرمت مثلا 1378/4/5 و نه به این صورت 1378/04/05 . و حالا می خواهم تاریخ های بین دو تاریخ خاص را به دست بیارم ولی در بعضی موارد درست جواب نمیدهد فکر میکنم مشکل فرمت آنهاست که به این صورت است 1378/4/5 . لطفا مرا راهنمایی کننی ممنون

bachebahal_1363
پنج شنبه 16 آبان 1387, 23:10 عصر
اصلا نیازی به تبدیل تاریخ نیست شما تاریخ را در یک فیلد varchar به صورت مثلا 13871010 ذخیره کنید یا 10/10/1387 و زمانی که بخواهید بین دو تاریخ رو جستجو کنید به جای bettwen از < یا > استفاده کنید ، چون شما می دونید که تاریخ هر روز اضافه می شه و sql بر اساس مقدار هر کاراکتر جستجو می کنه که کدام مقدار بزرگترین هست و این کار رو از سمت چپ به راست انجام می ده پس با دستور زیر به راحتی می تونین این کار را انجام بدین :


SELECT * FROM TBLNAME WHERE datefiled > value1 AND datefiled <value2

mahdi_farhani
جمعه 17 آبان 1387, 00:03 صبح
دوست عزیز شما باید حتماً به صورت کامل تاریخ رو ذخیره کنید یعنی yyyy/mm/dd چون وقتی طول رشته های برابر نباشه حتی اگر تاریخها هم یکی باشه نتیجه درست رو به شما نمایش نمیده.دوم اینکه وقتی بازه تاریخ رو میخواهی بدست بیاری بش میگی از 1/1/1387 تا 1/5/1387 تاریخ های برج 10و11و12 هم براتون لیست میکنه چون رقم اول ماه 1 هست . پس حتماً تاریخ باید به صورت کامل باشه