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

نام تاپیک: جستجو براساس تاریخ

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1389
    پست
    53

    جستجو براساس تاریخ

    سلام دوستان
    دیتابیس برنامم SqlServer 2008 و فیلد تاریخ رو با نوع Nvarchar ذخیره کردم.حالا وقتی جستجو بر اساس تاریخ میکنم درست کار نمیکنه ؟؟
    برای مثال از 8/8/89 تا 10/8/89 رو سرچ میکنم رکورد رو نمیاره در صورتی که از 8/8/89 تا
    9/8/89 رکورد ها رو میاره .اینم کدی که برای جستجو نوشتم
    If Trim(DateTimePicker2.DateValue) <> ""And Trim(DateTimePicker4.DateValue) <> ""Then
    If Str2 = ""Then
    Str2 = " Where Datesale >= '" & Trim(DateTimePicker2.DateValue) & "' and Datesale <= '" & Trim(DateTimePicker4.DateValue) & "' "
    Else
    Str2 = Str2 & " And Datesale >='" & Trim(DateTimePicker2.DateValue) & "' and Datesale <='" & Trim(DateTimePicker4.DateValue) & "' "
    EndIf
    EndIf
    برای ذخیره تاریخ تو برنامه هم ازDateTimePicker شمسی استفاده می کنم.

  2. #2
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    35
    پست
    2,225

    نقل قول: جستجو براساس تاریخ

    میتونم بپرسم با چه منطقی تصور کردید که یه رشته میتونه از رشته دیگری از لحاظ Value کوچکتر یا بزرگتر باشه؟

    مقادیر رشته ای در SQl با NvarChar (و چندمورد دیگه) شناخته میشه! بنابراین نباید انتظار داشته باشید که همانند یک DateType برای شما عمل کنه ..

    برای حل این مشکل کافیه تاریخ مورد نظر رو ابتدا به DateTime تبدیل سپس استفاده کنید.

    با تشکر
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  3. #3
    کاربر دائمی آواتار ali_najari
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    سن
    37
    پست
    849

    نقل قول: جستجو براساس تاریخ

    نقل قول نوشته شده توسط salehbagheri مشاهده تاپیک
    میتونم بپرسم با چه منطقی تصور کردید که یه رشته میتونه از رشته دیگری از لحاظ Value کوچکتر یا بزرگتر باشه؟

    مقادیر رشته ای در SQl با NvarChar (و چندمورد دیگه) شناخته میشه! بنابراین نباید انتظار داشته باشید که همانند یک DateType برای شما عمل کنه ..

    برای حل این مشکل کافیه تاریخ مورد نظر رو ابتدا به DateTime تبدیل سپس استفاده کنید.

    با تشکر
    دوست عزيز من دارم از همين متد (Char) استفاده ميكنم توي برنامه هام و بدون مشكل اينكارو ميكنم حتي بين 2 تاريخ نيز جستوجو ميكنم تا به حال هم مشكلي واسم پيش نيومده

  4. #4

    نقل قول: جستجو براساس تاریخ

    نقل قول نوشته شده توسط 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. حالا اگر مقایسه کنید مشکل بالا به وجود نمی آید و تاریخ ها درست مقایسه می شوند.
    دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان

    هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
    واحد فاصله «متر» نیست، «اشتیاق» است. اگر مشتاقش باشی حتی يک قدم هم فاصله ای دور است.

    رنگ رنگی | آموزش

  5. #5
    کاربر دائمی آواتار ali_najari
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    سن
    37
    پست
    849

    نقل قول: جستجو براساس تاریخ

    بله mani جان من خودم هم از روش 10/08/1389 براي ذخيره سازي استفاده ميكنم

    ميدونم اشتباه هست ولي خوب راهي وجود نداره براي ذخيره سازي تاريخ شمسي با قالب Date و مجبوريم از اين روش استفاده كنم

    چرا يك روش وجود داره و اونم اينكه تاريخ رو بصورت ميلادي وارد كني و بعد تبديل كني كه اينطوري ميزان تبديل كردن ها زياد ميشه

  6. #6

    نقل قول: جستجو براساس تاریخ

    نقل قول نوشته شده توسط ali_najari مشاهده تاپیک
    چرا يك روش وجود داره و اونم اينكه تاريخ رو بصورت ميلادي وارد كني و بعد تبديل كني كه اينطوري ميزان تبديل كردن ها زياد ميشه
    من از این روش استفادی میکنم ، مشکلی هم ندارم. دوتا تابع عمومی نوشتم، موقع فراخوانی تاریخ را به یکی از اونها میفرستم تا تبدیل بشه و نمایش داده بشه و موقع ذخیره هم به یک تابع دیگه فرستاده میشه تا به میلادی تبدیل بشه . مشکلی نداشتم . اما این مزیت را داره که تو همون فیلد علاوه بر تاریخ زمان را هم میتواند ذخیره کنید برای روز مبادا
    دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان

    هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
    واحد فاصله «متر» نیست، «اشتیاق» است. اگر مشتاقش باشی حتی يک قدم هم فاصله ای دور است.

    رنگ رنگی | آموزش

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1389
    پست
    53

    نقل قول: جستجو براساس تاریخ

    اول تاریخ رو از نوع date ذخیره کردم ولی مشکل توی نمایش اونه که به این شکله
    1389/08/08

  8. #8

    نقل قول: جستجو براساس تاریخ

    نقل قول نوشته شده توسط ali_najari مشاهده تاپیک
    من خودم هم از روش 10/08/1389 براي ذخيره سازي استفاده ميكنم
    من هم از این روش استفاده میکنم . تا حالا به مشکلی بر نخوردم.

    نقل قول نوشته شده توسط Mani_rf مشاهده تاپیک
    اما این مزیت را داره که تو همون فیلد علاوه بر تاریخ زمان را هم میتواند ذخیره کنید برای روز مبادا
    مگه تو حالت string نمیشه time رو هم ذخیره کرد؟
    البته من Time رو تو یه فیلد جدا میریزم .

    نقل قول نوشته شده توسط a1b2uu مشاهده تاپیک
    اول تاریخ رو از نوع date ذخیره کردم ولی مشکل توی نمایش اونه که به این شکله
    1389/08/08
    این شکل مگه چه مشکلی داره؟ درستش همینه.

  9. #9
    مدیر بخش آواتار salehbagheri
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    In Hearts
    سن
    35
    پست
    2,225

    نقل قول: جستجو براساس تاریخ

    دوستان همیشه سعی کنید هر چیزی را در DataType مخصوص خودش استفاده کنید.

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

    نظر شخصی من این هست که تاریخ شمسی رو هیچگاه در پایگاه داده ذخیره نکنید بلکه معادل اون رو در میلادی ذخیره کنید.

    یا اگر خیلی اصرار بر ذخیره تاریخ شمسی در DB دارید روز و ماه و سال رو جداگانه در فیلد int ذخیره کنید.

    با تشکر
    امیدم به دستان زیبای اوست . آنکه می آید . همان که نامش منجی ست ....

    به راستی اگر غرق نبودیم چرا مارا به منجی ای نیازمند کرده اند؟ ... دنیا دریاست ....

    دلنوشته های من


  10. #10
    کاربر دائمی آواتار s.k711
    تاریخ عضویت
    آبان 1386
    محل زندگی
    مشهد
    سن
    38
    پست
    164

    نقل قول: جستجو براساس تاریخ

    دوستان همیشه سعی کنید هر چیزی را در DataType مخصوص خودش استفاده کنید.

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

    نظر شخصی من این هست که تاریخ شمسی رو هیچگاه در پایگاه داده ذخیره نکنید بلکه معادل اون رو در میلادی ذخیره کنید.

    یا اگر خیلی اصرار بر ذخیره تاریخ شمسی در DB دارید روز و ماه و سال رو جداگانه در فیلد int ذخیره کنید.
    سلام دوست عزيز روش شما روش خوبي است اما اگه بخواهيم نتايج جستجو را تو ديتاگريد نمايش بديم چه جوري روز و ماه و سال را با هم ادغام كنيم كه به طور مثال به صورت :5/3/1389 نمايش بده

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

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