نمایش نتایج 1 تا 9 از 9

نام تاپیک: مشکل در مقایسه دو تاریخ

  1. #1

    مشکل در مقایسه دو تاریخ

    با سلام
    من وقتی داخل فرم دو تاریخ رو به صورت زیر مقایسه می کنم مشکلی ندارم :

    DateTime dt1 =Convert.ToDateTime( maskedTextBox1.Text); DateTime dt2 = Convert.ToDateTime(maskedTextBox2.Text); if (dt1>dt2) label1.Text = "تاریخ اولی"; else label1.Text = "تاریخ 2"; label2.Text = (dt1 - dt2).ToString(); ولی وقتی تاریخ ها رو از پایگاه داده می خونم خطا میده (Conversion failed when converting the varchar value '1391/01/01' to data type int.):

    publicDataTable showbetweendatas(DateTime date1,DateTime date2 ) { query = "select * from BarTB,SenderTB,GetterTB,DriverTB where sid_fk=sid and gid_fk=gid and driverid_fk=did and sodordate>="+date1+" and sodordate<="+date2+" order by bid desc"; DataTable dt = newDataTable(); ctrl.connect(); dt = ctrl.filldataadaptor(query); ctrl.disconnect(); return dt; }

    باید چه کار کنم ؟
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 27 مرداد 1394 در 14:23 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تبریز
    پست
    150

    نقل قول: مشکل در مقایسه دو تاریخ

    با سلام

    شما برای انتخاب بین 2 تاریخ از تابع "BETWEEN" استفاده کنید
    بطور مثال
    SELECT @date FROM tbl WHARE @date BETWEEN @valueDate1 and  @valueDate2 

  3. #3

    نقل قول: مشکل در مقایسه دو تاریخ

    نقل قول نوشته شده توسط havash.link مشاهده تاپیک
    با سلام

    شما برای انتخاب بین 2 تاریخ از تابع "BETWEEN" استفاده کنید
    بطور مثال
    SELECT @date FROM tbl WHARE @date BETWEEN @valueDate1 and @valueDate2 
    به صورت زیر هم نوشتم باز خطا میده که نمی تونه string رو به int تبدیل کنه .

    // //query = "select * from BarTB where sodordate BETWEEN "+date1+" and "+date2+" order by bid desc";

    روشی که شما گفتید در حالت stored procedure جواب گرفتم ولی به روش خودم که کد رو داخل C#‎‎‎‎ فقط می نویسم خطا میده .
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 27 مرداد 1394 در 14:23 عصر

  4. #4

    نقل قول: مشکل در مقایسه دو تاریخ

    کسی نمی تونه راهنماییم کنه ؟

  5. #5
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: مشکل در مقایسه دو تاریخ

    ببینید تاریخ در database به صورت میلادی هست در صورتیکه شما شمسی تعریف کردین البته نمیدونم از DataTime در سمت DataBase استفاده کردین یا varchar. خطایی که نشون دادین بطور واضح می گه که نمی تونه varchar رو به int تبدیل کنه. یه راه اینه که (البته اگر ساعت مهم نیست و فقط به تاریخ نیاز دارین) تاریخ رو به صورت عدد 8 رقمی در database ذخیره کنید مثلا 13920214 به این شکل مشکلی در کوئری زدن در database برای یک بازه زمانی نخواهید داشت.
    در هر صورت قبل از اینکه سمت سی شارپ کدنویسی کنید اول کوئری تون رو در sql اجرا کنید بعد بیان سراغ سی شارپ همون کوئری رو استفاده کنید. در صورت بروز مشکل، به طور کامل توضیح بدین که از چه type ای استفاده کردین چه کوئری زدین و متن خطا چی بوده و مربوط به کدوم خط هست.
    تا مشکلتون رو به طور کامل تشریح نکنید دیرتر به جواب می رسین

  6. #6

    نقل قول: مشکل در مقایسه دو تاریخ

    با تشکر از شما
    تاریخ رو به صورت nvarchar در پایگاه داده ذخیره کرده ام . تاریخ توسط کنترل maskedtextbox به صورت مثلا01/01/1391 وارد شده و به همین صورت هم داخل پایگاه داده ذخیره می شود .
    خطا ی Conversion failed when converting the varchar value '1391/01/01' to data type int.): هم به کد اس کیو ال میده .

  7. #7

    نقل قول: مشکل در مقایسه دو تاریخ

    مقادیر رشته ای رو باید با تک کوتیشن مشخص کنید پس دو طرف تاریخ ها تک کوتیشن نیازه. در ضمن نوع ستون تاریخ رو از نوع char یا varchar بگیرید.
    "select * from BarTB where sodordate BETWEEN '" + date1 + "' and '" + date2 + "' order by bid desc"

  8. #8
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: مشکل در مقایسه دو تاریخ

    همانطور که دوست خوبم اشاره کردن باید از کوتیشن استفاده کنید و گرنه به شکل int دیده می شود. چند خط اول کدتون گمراه کننده بود بیشتر تا راهنمایی!!!(استفاده از dateTime)

  9. #9
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تبریز
    پست
    150

    نقل قول: مشکل در مقایسه دو تاریخ

    شما وقتی متغیرتون را بصورت datetime به تابع انتقال می دین مقادیر متغیر تون بصورت کامل ( یعنی تاریخ و ساعت ) ارسال می شه ، حتی اگر شما فقط تاریخ رو به متغیر از نوع datetime وارد کنید در این صورت هم باز زمان به این متغیر اضافه می شه پس حتما باید در موقع استفاده در داخل تابع ، متغیر رو محدود به تاریخ کنین بصورت زیر :

    date1.ToShortDateString()
    date2.ToShortDateString()



    برای روشن تر شدن بیشتر موضوع اگه از دو متغیر date1 و date2 داخل تابع خروجی بگیرین میبینین که تاریخ همراه با ساعت رو واسه شما نمایش میده.
    آخرین ویرایش به وسیله havash.link : دوشنبه 16 اردیبهشت 1392 در 07:54 صبح

تاپیک های مشابه

  1. مشکل در مقایسه دو تاریخ شمسی در پایگاه
    نوشته شده توسط akram_k در بخش C#‎‎
    پاسخ: 14
    آخرین پست: پنج شنبه 30 آذر 1391, 12:08 عصر
  2. مبتدی: مشکل در مقایسه تاریخ شمسی
    نوشته شده توسط aliasghar2 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: دوشنبه 24 مرداد 1390, 11:03 صبح
  3. مشکل در مقایسه دو تاریخ
    نوشته شده توسط bahar_engineer در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 02 دی 1388, 13:12 عصر
  4. سوال: یه سوال ساده اما مشکل ، مقایسه دو تاریخ
    نوشته شده توسط soheilbehro در بخش برنامه نویسی در 6 VB
    پاسخ: 15
    آخرین پست: جمعه 03 مهر 1388, 23:25 عصر
  5. مشکل در مقایسه دو تاریخ با compareValidator!
    نوشته شده توسط setarh-arjoman در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: شنبه 29 اردیبهشت 1386, 08:26 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •