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

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

  1. #1
    کاربر دائمی آواتار hadimtn
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    ا یــــــــــــر ا ن
    پست
    181

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

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

    من به این شکل نوشتم؛


    ForoshaLINQDataContext db = new ForoshaLINQDataContext();
    PersianCalendar pc = new PersianCalendar();


    var CurrentMonthQuery = (from f in db.SaledTables
    where pc.GetMonth(f.RegDate) == pc.GetMonth(DateTime.Now)
    select f).OrderBy(f => f.Object).ToList();

    ReportViewer.DataSource = CurrentMonthQuery;


    اما؛


    تاریخ با نوع داده ی DateTime (میلادی) ذخیره شده!

  2. #2

    نقل قول: تبدیل تاریخ هنگام پرس و جوی LINQ

    خطا به این دلیل هست که دستور linq بایست به کوئری sql تبدیل بشه ولی متد GetMonth قابل ترجمه به sql نیست.
    راه حل:
    یک راهش اینه که در sql فانکشن و استورپروسیجر ایجاد کرده و تاریخ میلادی رو به شمسی تبدیل کنید و سلکت مورد نظر رو بنویسید و از استورپروسیجر استفاده کنید.

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

    DateTime today = DateTime.Today;
    PersianCalendar pc = new PersianCalendar();

    int shamsiCurrentYear = pc.GetYear(today);
    int shamsiCurrentMonth = pc.GetMonth(today);
    int daysInCurrentMonth = pc.GetDaysInMonth(shamsiCurrentYear, shamsiCurrentMonth);

    DateTime dateTimeOfFirstDay = new DateTime(shamsiCurrentYear, shamsiCurrentMonth, 1, pc);
    DateTime dateTimeOfLastDay = new DateTime(shamsiCurrentYear, shamsiCurrentMonth, daysInCurrentMonth, pc);

    DataClasses1DataContext db = new DataClasses1DataContext();
    var query =
    from t in db.tbls
    where t.RegDate >= dateTimeOfFirstDay
    && t.RegDate <= dateTimeOfLastDay
    select t;
    آخرین ویرایش به وسیله Mahmoud.Afrad : دوشنبه 19 بهمن 1394 در 17:31 عصر

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

  1. پاسخ: 6
    آخرین پست: سه شنبه 20 مرداد 1394, 17:45 عصر
  2. سوال: بدست آوردن رکوردی که فیلد خاصی از آن null باشد در ado.net
    نوشته شده توسط rafiee.mostafa64 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: دوشنبه 31 فروردین 1394, 13:39 عصر
  3. پاسخ: 1
    آخرین پست: شنبه 27 خرداد 1391, 17:39 عصر
  4. بدست آوردن اطلاعات بین دو تاریخ از نوع Date در SQL
    نوشته شده توسط Mahdi_S_T در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: جمعه 05 تیر 1383, 19:46 عصر
  5. بدست اوردن اختلاف دو تا تاریخ
    نوشته شده توسط amir_masoud در بخش VB.NET
    پاسخ: 3
    آخرین پست: سه شنبه 18 شهریور 1382, 00:00 صبح

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

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