PDA

View Full Version : مشکل با تاریخ (کمک فوری)



داوود
پنج شنبه 31 شهریور 1384, 08:37 صبح
من یک برنامه نوشته ام که در آن تاریخ بر اساس تاریخ هجری شمسی کار می کند . فیلد بانک اطلاعاتی از نوع Text است و برای انکه کارهای مقایسه ای مانند بزرگ تر و یا مساوی بودن انجام دهم از تابع StrToDate استفاده می کنم. برنامه تا امروز خوب کار می کرد ولی امروز وقتی تاریخ روز رو بهش دادم با پیغام زیر مواجه شدم .
لطفا راهنمایی کنید.
مجددا تاکید می کنم روی فیلد تاریخ کارهای مقایسه ای انجام می شود.

vcldeveloper
جمعه 01 مهر 1384, 12:40 عصر
دوست عزیز، تابع StrToDate فقط با تاریخ میلادی کار میکنه، از طرفی شمار روزهای ماههای میلادی با ماههای شمسی یکی نیست، در نتیجه الان براتون مشکل ایجاد شده.

داوود
شنبه 02 مهر 1384, 11:07 صبح
ضمن تشکر
اگه تابع StrToDate رو حذفش کنم و کار مقایسه رو با همان حالت String انجام دهم برام مشکلی پیش نمیاد.

Naficy
شنبه 02 مهر 1384, 20:19 عصر
البته به شرطی که صفرچین سمت چپ را همواره قرار دهید. یعنی مثلا 6 فروردین 84 را همواره به صورت 1384/01/06 بنویسید.

دنی کوئیل
شنبه 10 دی 1384, 22:01 عصر
من از بانک SqlServer استفاده می کنم

فیلدی که در جدولم تعریف کرده ام از نوع DateTime می باشد حالا وقتی میخواهم مقدار دهی کنم این فیلد را خطا بالا را می دهد من حتی از StrToDate استفاده کردم اما میگن این واسه تاریخ میلادی

حالا من چی کار کنم به نظر شما

دنی کوئیل
یک شنبه 11 دی 1384, 10:44 صبح
من از بانک SqlServer استفاده می کنم

فیلدی که در جدولم تعریف کرده ام از نوع DateTime می باشد حالا وقتی میخواهم مقدار دهی کنم این فیلد را خطا بالا را می دهد من حتی از StrToDate استفاده کردم اما میگن این واسه تاریخ میلادی

حالا من چی کار کنم به نظر شما

بابا یکی جواب بده:متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر:

oghab
یک شنبه 11 دی 1384, 12:12 عصر
تاریخت را در sql به صورت کاراکتری ذخیره کن!

دنی کوئیل
یک شنبه 11 دی 1384, 20:15 عصر
خوب به نظر شما اگر بعدا بخواهم این تاریخ را فیلتر کنم مشکل پیش نمیاد ؟

دنی کوئیل
سه شنبه 13 دی 1384, 19:37 عصر
من از بانک SqlServer استفاده می کنم

فیلدی که در جدولم تعریف کرده ام از نوع DateTime می باشد حالا وقتی میخواهم مقدار دهی کنم این فیلد را خطا بالا را می دهد من حتی از StrToDate استفاده کردم اما میگن این واسه تاریخ میلادی

حالا من چی کار کنم به نظر شما

یکی به ثوابی بکنه بگه چه جوری میشه این کار را کرد ؟

babak869
سه شنبه 13 دی 1384, 21:48 عصر
شما مینونی از تبدیلات استفاده کنی مثل
DateToStr Or StrToDate
اینم راه حل مشکل شما!!!!
موفق باشید

دنی کوئیل
سه شنبه 13 دی 1384, 23:08 عصر
شما مینونی از تبدیلات استفاده کنی مثل
DateToStr Or StrToDate
اینم راه حل مشکل شما!!!!
موفق باشید

آقا بابک این دو تا تابعی که شما گفتید واسه تاریخ میلادی است و شمسی را خطا میگیره

oghab
چهارشنبه 14 دی 1384, 16:13 عصر
خوب به نظر شما اگر بعدا بخواهم این تاریخ را فیلتر کنم مشکل پیش نمیاد ؟
سلام
ببین من تاریخ در database ام در sql را کاراتری ذخیره کردم.
برای فیلتر هم چه برای مشخص کردن یه تاریخ خاص و چه بین دو تا تاریخ مشکلی نداشتم. به date هم تبدیل نکردم و همونطور که کاراکتری بود فیلتر کردم. ظاهرا که مشکلی نداشت چه برای فیلتر چه query گرفتن!
حالا شما هم امتحان کن!
موفق باشی

دنی کوئیل
پنج شنبه 15 دی 1384, 11:51 صبح
سلام
ببین من تاریخ در database ام در sql را کاراتری ذخیره کردم.
برای فیلتر هم چه برای مشخص کردن یه تاریخ خاص و چه بین دو تا تاریخ مشکلی نداشتم. به date هم تبدیل نکردم و همونطور که کاراکتری بود فیلتر کردم. ظاهرا که مشکلی نداشت چه برای فیلتر چه query گرفتن!
حالا شما هم امتحان کن!
موفق باشی

شما از StrToDate استفاده کردید

خواهشن اون کد فیلتر تاریخ را بزار اینجا تا ببینم چه جوری فیلتر کردی

به طور مثال هر چی تاریخه از 1384/01/01 الی 1384/02/01 را نمایش بده

Touska
پنج شنبه 15 دی 1384, 15:21 عصر
اگر مشکلتون تبدیل ها هست از آن dll که من upload کردم استفاده کنید.

mzjahromi
پنج شنبه 15 دی 1384, 15:31 عصر
چند تا راه داری
1: تاریخ رو به صورت میلادی ذخیره کنی و فه صورت شمسی نمایش بدی
2: تاریخ رو به صورت Integer ذخیره کنی اونوقت برای Query گرفتن و فیلتر هم مشکلی نداری

ضمن اینکه به صورت رشته ای هم اگه ذخیره کنی و سعی کنی همه تاریخها با یک استاندارد خاص ذخیره کنی مشکلی نداری

saeed_d
پنج شنبه 15 دی 1384, 15:33 عصر
شما از StrToDate استفاده کردید

خواهشن اون کد فیلتر تاریخ را بزار اینجا تا ببینم چه جوری فیلتر کردی

به طور مثال هر چی تاریخه از 1384/01/01 الی 1384/02/01 را نمایش بده
اگه اسم فیلدت Date باشه:


'Date<='+QuotedStr('1384/02/01')+' and Date>='+QuotedStr('1384/01/01')

البته اگه کد Sql کامل اون رو می خوای:


'Select * from MyDB where Date>='+QuotedStr('1384/01/01')+' and Date<='+QuotedStr('
1384/02/01');

دنی کوئیل
جمعه 16 دی 1384, 12:58 عصر
بسیار ممنون

MiRHaDi
شنبه 17 دی 1384, 01:06 صبح
سلام
محسن جون ! تو رو به هر کس دوست داری ! قبل از اینکه بپرسی یه نگاه به سایت بنداز
تقریبا 96% سوالات تکراریه و تو سایت در موردش صحبت شده !
این موضوع خیلی از بچه ها رو ناراحت میکنه !
لطف میکنی اگه رعایت کنی
بای