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

نام تاپیک: بدست آوردن سطرهای بین تاریخ رشته ای

  1. #1
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    بدست آوردن سطرهای بین تاریخ رشته ای

    سلام به همه عزیزان
    من تو دیتا بیسم تاریخ رو بصورت char دخیره میکنم
    حالا میخوام گزارش تهیه کنم در بین دو تاریخ معیین
    حالا تاریخ رو بصورت بصورترشته دارم
    بهترین راه برای بدست آوردن سطرهایی که بین این تاریخ ها هستن چیه؟
    مرسی از کمکتون

  2. #2
    کاربر دائمی آواتار Xcalivorse
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    Kernel32.dll
    پست
    411

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    تاریخ رو باید به صورت عدد ذخیره کنید. بنابراین به راحتی میتونید کاری رو که میخواهید انجام بدید.
    در این روش ابتدا قسمت های مختلف یک تاریخ رو ( روز، ماه، سال) به صورت رشته درآورده و پس از چسباندن آنها بهم رشته مورد نظر رو تبدیل به عدد میکنیم. سپس عدد رو در دیتابیس ذخیره میکنیم.
    توی عکس ضمیمه مراحل نشون داده شده.

    برای ذخیر سازی عدد در دیتا بیس نیاز به فیلدی از نوع Int دارید که فقط 4 بایت اشغال میکنه (4 بایت کمتر از DateTime). و میتونید به راحتی با استفاده از آن Query بگیرید. هر جور که فکرشو بکنید. به راحتی میتونید داده های بین دو تاریخ خاص رو بازیابی کنید یا داده های یک تارخ مورد نظر رو همچنین داده هایی که مثلا در روز نهم (در تمام تاریخ ها یا در یک بازه محدود) درج شدند و... .
    توجه کنید عدد های تک رقمی باید به صورت صفر به همراه عدد نشان داده شود مثلا 1 به صورت 01 باید به رشته مورد نظر چسبیده شود.
    به امید خدا نمونه برنامه اش هم که تموم شد ضمیمش میکنم.

    دوستان اگر عیب یا نقصی به ذهنتون میرسه لطفا بگین.
    امیدوارم مطلب یاد شده براتون مفید باشه.
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 2.JPG‏ (20.1 کیلوبایت, 24 دیدار)

  3. #3
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    خوب حالا چطوری من یک کوئری بگیرم بین دوتا تاریخ؟
    یک نمونه اگر میشه برام بنویس

  4. #4
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    نقل قول نوشته شده توسط Yama12 مشاهده تاپیک
    خوب حالا چطوری من یک کوئری بگیرم بین دوتا تاریخ؟
    یک نمونه اگر میشه برام بنویس
    این قسمت از سوالتون SQL میشه !!

    select * from table1 where date between begin_date and end_date

  5. #5
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    نقل قول نوشته شده توسط dr_csharp مشاهده تاپیک
    این قسمت از سوالتون SQL میشه !!

    select * from table1 where date between begin_date and end_date
    اگر تاریخ رو بصورت datetime ذخیره میکردم که مشکلی نبود و حرف شما درست بود
    اما من تاریخ رو بصورت رشته در دیتابیس ذخیره کردم
    و بعدا تو کدام تبدیل میکنم به datetime
    حالا دوتا datetime دارم و یک دیتا ست که میخوام سطر هایی از دیتاست رو که بین اون دوتا تاریخ هستم=ن رو بکشم بیرون
    حالا چهکار کنم؟

  6. #6
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    نقل قول نوشته شده توسط Yama12 مشاهده تاپیک
    اگر تاریخ رو بصورت datetime ذخیره میکردم که مشکلی نبود و حرف شما درست بود
    اما من تاریخ رو بصورت رشته در دیتابیس ذخیره کردم
    و بعدا تو کدام تبدیل میکنم به datetime
    حالا دوتا datetime دارم و یک دیتا ست که میخوام سطر هایی از دیتاست رو که بین اون دوتا تاریخ هستم=ن رو بکشم بیرون
    حالا چهکار کنم؟
    با این دستور میتونی عملیات تبدیل رو انجام بدین
    convert(datetime,2008/12/12)

    بهتره نمونه ای از تاریخ ذخیره شده تو بانک رو نشون بدین تا بهتر راهنمایی بشین

  7. #7
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    من تاریخ رو به صورت
    1387/09/01
    ذخیره میکنم
    نمونه تبدیل شده به date time

    //get From Date
    int FYear = int.Parse(CboQ1FYear.SelectedItem.ToString());
    int FMonth = int.Parse(CboQ1FMonth.SelectedItem.ToString());
    int FDay = int.Parse(CboQ1FDay.SelectedItem.ToString());
    DateTime FromDate = new DateTime(FYear, FMonth, FDay);
    //get Till Date
    int TYear = int.Parse(CboQ1TYear.SelectedItem.ToString());
    int TMonth = int.Parse(CboQ1TMonth.SelectedItem.ToString());
    int TDay = int.Parse(CboQ1TDay.SelectedItem.ToString());
    DateTime TillDate = new DateTime(TYear, TMonth, TDay);

    حالا دوتا تاریخ دارم یکی "از" و یکی "تا" که بادی تمام سطرهایی که تاریخشون بین اینهاست رو بیرون بکشم

  8. #8
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    اگه تاریخ رو شمسی تو بانک خیه میکنی بهترین راهت همون روش دوستمون Xcalivorse هست !
    درغیر اینصورت تاریخ شمسی رو تو برنامت به میلادی تبدیل و با تاریخ داخل بانکت مقایسه کن !

  9. #9
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    اگر بخوام از روش دوم استفاده کنم
    یعنی اول به میلادی تبدیل میکنم
    و دوتا تاریخ دارم حالا چطوری از دیتاستم سطرهایی رو که تاریخشون بین اینهاست بیرون بکشم؟

  10. #10
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    نقل قول نوشته شده توسط Yama12 مشاهده تاپیک
    اگر بخوام از روش دوم استفاده کنم
    یعنی اول به میلادی تبدیل میکنم
    و دوتا تاریخ دارم حالا چطوری از دیتاستم سطرهایی رو که تاریخشون بین اینهاست بیرون بکشم؟
    پست شماره ی 5 !

  11. #11
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    نقل قول نوشته شده توسط dr_csharp مشاهده تاپیک
    پست شماره ی 5 !
    اگر منظورت شماره 4 هست که معلومه به از 3 روز هنوز سوال منو نفهمیدید
    من تو دیتا بیسم تاریخ رو بصورت رشته ذخیره میکنم
    کد :
    select * from table1 where date between begin_date and end_date

    که شما گفتی برای فیلدهای datetime هست

  12. #12
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    کسی نیست که به من کمک کنه
    من خیلی عجله دارم و کارم گیر هست

  13. #13
    کاربر دائمی آواتار Xcalivorse
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    Kernel32.dll
    پست
    411

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    دوست عزیز من تو پست های قبلی براتون نوشتم تاریخ رو به صورت عدد و با روش گفته شده ذخیره کنید نه به صورت رشته. برای جستجو هم اونوقت مشکلی نداری چون عددی که از تاریخ امروزت به دست میاد همیشه یک واحد از تاریخ دیروز بزرگتره و عددی که از تاریخ فردا به دست میاد همیشه یک واحد از تاریخ امروزت بزرگتره.
    در مثال زیر تمام داده هایی که در تاریخ ما بین 22/10/1386 تا 22/10/1387 با روش ذکر شده وارد شده اند نمایش داده میشود.
    SELECT * FROM table2 WHERE MyDate >= 13861022 AND MyDate <= 13871022

  14. #14
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    خسته نباشید جناب آقای Xcalivorse جون
    yama خان اول من اگر جای شما بودم تاریخ را به صورت datetime ذخیره میکردم(که البته همه میدانند 1300 از range سال dotnet کمتر است)
    خوب حالا چکار کنیم؟
    بهترین کار از نظر من اینست که تاریخ در لایه کاربر پارسی باشد و در لایه دیتابیس جورجین باشد.
    شما میتوانید datetimepiker را به پارسی set کنید(به وسیله dll) و با کد dotnet آنرا به جورجین تبدیل و سپس ذخیره کنید.
    اگر وقت کردم،کدش را میگذارم.که البته سخت هم نیست داداشی
    پیروز باشید

  15. #15
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    سلام مجدد
    مرسی از راهنماییت
    من 6 ماهه روی یک پروژه مار میکنم و حالا به آخرین مرحلش رسیدم یعنی گزارش گیری
    پس نمیتونم 50 تا جدول رو تغییر بدم و 20 تا کلاس رو دوباره ویرایش کنم
    پس لطفا راهی نشون بدید که با وظعیت فعلی من یعنی داشتن تاریخ بصورت رشته ای در دیتابیس بتونم بین دوتا تاریخ گزارش بگیرم

  16. #16
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    دوست عزیز باا ستفاده از این فانکشن می تونی تاریخ شمسی رو به میلادی تبدیل کنی:
    publicstaticstring ChangePersianDate(DateTime dateTime)
    {
    System.Globalization.GregorianCalendar PC = new System.Globalization.GregorianCalendar();
    PC.CalendarType = System.Globalization.GregorianCalendarTypes.USEngl ish;
    return PC.GetDayOfMonth(dateTime).ToString()
    + "/"
    + PC.GetMonth(dateTime).ToString()
    + "/"
    + PC.GetYear(dateTime).ToString();
    }

  17. #17
    کاربر دائمی آواتار محمدامین شریفی
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران - شیراز
    پست
    1,302

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    نقل قول نوشته شده توسط Yama12 مشاهده تاپیک
    سلام مجدد
    مرسی از راهنماییت
    من 6 ماهه روی یک پروژه مار میکنم و حالا به آخرین مرحلش رسیدم یعنی گزارش گیری
    پس نمیتونم 50 تا جدول رو تغییر بدم و 20 تا کلاس رو دوباره ویرایش کنم
    پس لطفا راهی نشون بدید که با وظعیت فعلی من یعنی داشتن تاریخ بصورت رشته ای در دیتابیس بتونم بین دوتا تاریخ گزارش بگیرم
    خوب پس
    دوست خوبم.یه کد تو دات نت هست که رشته را تکه تکه میکند.
    به این معنی که هر وقت که به عبارتی که شما مشخص کرده اید مانند(/)رشته را میبرد
    الان تو ذهنم نیست.ولی کوشش میکنم واسط بنویسم.
    وقتی که عبارت به روز،ماه،سال تغییر کرد.حالا به میلادی تبدیل کن.یا با همون کد دوستمون
    SELECT * FROM table2 WHERE MyDate >= 13861022 AND MyDate <= 13871022

    تفاوت را حساب کن.
    من خودم شنبه باید پروژه تحویل بدم.وگرنه واسط مینوشتم.روی رشته ها کار کن(دات نت هم راحت تر از دیتابیس هست.کدات رو با دات نت پویش کن)

  18. #18
    کاربر دائمی آواتار Xcalivorse
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    Kernel32.dll
    پست
    411

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    دوست خوبم.یه کد تو دات نت هست که رشته را تکه تکه میکند.
    به این معنی که هر وقت که به عبارتی که شما مشخص کرده اید مانند(/)رشته را میبرد
    الان تو ذهنم نیست.ولی کوشش میکنم واسط بنویسم.
    وقتی که عبارت به روز،ماه،سال تغییر کرد.حالا به میلادی تبدیل کن.یا با همون کد دوستمون
    دوست عزیز من بخاطر این تونستم به این راحتی Query بگیرم چون فیلدهای تاریخم از نوع عددی بود نه رشته ای.

    من 6 ماهه روی یک پروژه مار میکنم و حالا به آخرین مرحلش رسیدم یعنی گزارش گیری
    پس نمیتونم 50 تا جدول رو تغییر بدم و 20 تا کلاس رو دوباره ویرایش کنم
    پس لطفا راهی نشون بدید که با وظعیت فعلی من یعنی داشتن تاریخ بصورت رشته ای در دیتابیس بتونم بین دوتا تاریخ گزارش بگیرم
    خوب عزیز من نیازی نیست که فیلد رشته ای تو حذف کنی. میتونی به جدولت یه فیلد عددی هم برای نگه داری و کار با تاریخ اضافه کنی.

  19. #19
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    مرسی آخرش مجبور شدم به عددی تبدیل کنم
    من dll ی رو که datetimepicker رو به فارسی ست میکنه میخوام
    کسی میتونه برام بزاره

  20. #20
    کاربر دائمی آواتار Yama12
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    قم
    سن
    37
    پست
    206

    نقل قول: بدست آوردن سطرهای بین تاریخ رشته ای

    سلام
    به نظرتون بهترین و کم دردسر ترین روش برای کار با تاریخ در یک پروژه چی هست
    که هر کاری که بخواهی بتونی به راحتی انجام بدی
    یعنی اینکه تاریخ رو به چه صورتی تو دیتابیس ذخیره کنیم و چطوری ازش استفاده کنیم
    مرسی

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

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