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

نام تاپیک: مشکل در ذخیره کردن روز 31 هر ما

  1. #1

    مشکل در ذخیره کردن روز 31 هر ما

    برای ذخیره کردن تاریخ ابتدا آن را به شمسی تبدیل می کنم و آن را در فیلدی در sql server ازنوع (datetime2(7
    میریزم اما در روز 31 قابل ثبت نیست
    ممنون میشم راهنمایی کنید

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

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    بهتره تاریخ شمسی بوسیله رسته ذخیره بشه.
    انواع تاریخی sql server از نوع میلادی هستند که همونطور که میدونید الزاما شماره ماه های میلادی که 31 روز هستند با شماره ماه های شمسی 31 روزه یکی نیستند.

  3. #3

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    نقل قول نوشته شده توسط m_ali_gho مشاهده تاپیک
    بهتره تاریخ شمسی بوسیله رسته ذخیره بشه.
    انواع تاریخی sql server از نوع میلادی هستند که همونطور که میدونید الزاما شماره ماه های میلادی که 31 روز هستند با شماره ماه های شمسی 31 روزه یکی نیستند.
    بله دوست عزیز بنده با m_ali_gho موافقم که شما می بایست در C#‎ از یکی از کامپیوننت و یا کلاسی که تاریخ میلادی رو به شمسی تبدیل کنه استفاده و در صورت ذخیره کردن باید از نوع nvarchar(50) استفاده کنید تا تاریخ بصورت رشته ذخیره شود.

  4. #4

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    خوب اینطوری که کل پروژه به هم می ریزه

  5. #5

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    نقل قول نوشته شده توسط sepehr.sz مشاهده تاپیک
    خوب اینطوری که کل پروژه به هم می ریزه
    نه به هم نمی ریزه.شما زمانی که دیباگ رو clean کنین خود سی شارپ اتوماتیک یه دیباگ دیگه تولید می کنه.شما برای دیباگ سه گزینه دارید:1-clean 2-rebuild 3-build اینها گزینه های پیش روتونه که از هر کدوم خواستین می تونین استفاده کنین.و برای sql هم شما راه دیگه ندارین چون باید تاریخ رو بصورت رشته ذخیره کنید.

  6. #6

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    نقل قول نوشته شده توسط arash201 مشاهده تاپیک
    نه به هم نمی ریزه.شما زمانی که دیباگ رو clean کنین خود سی شارپ اتوماتیک یه دیباگ دیگه تولید می کنه.شما برای دیباگ سه گزینه دارید:1-clean 2-rebuild 3-build اینها گزینه های پیش روتونه که از هر کدوم خواستین می تونین استفاده کنین.و برای sql هم شما راه دیگه ندارین چون باید تاریخ رو بصورت رشته ذخیره کنید.
    خوب کدهای سی شارپ که دیکه تغییر نمی کنه

  7. #7
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    https://gardesh-gar.ir
    پست
    527

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    سلام!
    پیشنهاد منم اینه که اگر مقدار تاریخیت از یه فرمت ثابت استفاده میکنه(یعنی مقدار ورودیش ثابته)از ncharاستفاده کن!
    مثلا اگر تاریخ اینجوری ذخیره میشه:1392/06/31
    میتونی فیلد رو اینجوری در نظر بگیری(nchar(10
    البته نظر شما هم مهمه...

  8. #8
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    من یه محاسبه روی تاریخ انجام میدم مثلا اختلاف بین دو تاربخ ولی وقتی تاریخ 31 ام را مقایسه میکنم جواب نمیده و مقداری بر نمیگردونه. چکار کنیم مشکل این 31ام حل بشه

  9. #9
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    مشکل تاریخ توی سایت زیاد بحث شده جستجو بزنید لطفا
    یکی از بهترین راهها بکارگیری نوع میلادی تاریخ منطورم Dateتوی دیتابیس هست و بکارگیری مبدلها از سمت کدها برنامه یا کدهای درون بانک اطلاعاتی هست مثل توابغ تبدیل تاریخ بقیه انواع مشکلات خاص خودشو داره مثل محاسبات تاریخی یا عدم تشخیصبعضی روزها

  10. #10
    کاربر دائمی آواتار Amir4317
    تاریخ عضویت
    مهر 1390
    محل زندگی
    نصف جهان
    پست
    160

    Thumbs up پاسخ مشکل در ذخیره کردن روز 31 هر ما [به فارسی]

    سلام
    قبل از ذخیره تاریخ در database اون رو به میلادی تبدیل کنید
    و در محاسباتتون هم به راحتی ازشون استفاده کنید
    تنها زمانی که لازمه به کاربر نمایش داده بشه اونها رو دوباره تبدیل به شمسی کنید.

    این روش یکی از احمقانه ترین کارهاست!
    روش ساده و به قول بچه ها جواب پس داده! استفاده از داده نوع sting یا همون varchar 10 هستش
    تاریخ همواره بصورت 1234/12/12 نوشته و ذخیر میشه پس نیازی نیس nvar باشه
    برای مقایسه دو تاریخ و تبدیل به میلادی و ... هم چندین بار کلاس هایی بسیار عالی نوشته شدن که خرجش یک گوگل در اینترنت است.

    موفق و پیروز باشید

  11. #11
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

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

  12. #12
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    من با تمام حالت تاریخ کار کردم چه رشته ای جه بصورت عددی ولی اصولی ترین حالت که راحت ترینش برای برنامه نویس چه از جهت مقایسه تاریخ بی عیب و نقص هست استفاده از datetime پیش فرض sql هست که تاریخ و ساعت رو باهم ذخیره میکند.در برنامه ت هر جا لازم بود تاریخ شمسی نشون بدی تاریخ رو تبدیل کن.کار شما اشتباهه که تاریخ شمسی رو در فرمت datetime ذخیره کردی

  13. #13
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    خب اگه قرارنیست در دیتابیس ذخیره شود.شما دو تاریخ از کاریر میگیری یا خودت دو تاریخ داری در برنامه ت که بصورت شمسی هست .اول اونارو به تاریخ میلادی تبدیل کن در حالت میلادی مقایسه دو تاریخ از timespan اسفاده کن تمامو کمال تفاوت دو تاریخ رو چه از جهت روز و ماه و سال بهت میده

  14. #14

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    سلام خدمت دوستان من این مشکل رو داشتم حل کردم برای تاریخ شمسی با کلک رشتی. اول یک فیلد ساختم برای تاریخ شمسی ولی از نوع nvarchar و دوم یک فیلد ساختم برای تاریخ میلادی از نوع date
    از اونجا که من نمی تونم روی شمسی عمل مقایسه انجام بدم قبل از ذخیره میاد تاریخ شمسی رو تبدیل میلادی شو میگیرم و به میلادی تاریخ شمسی رو تبدیل میکنم چون تاریخ شمسی رو میخوام تاریخ شمسی و میلادی رو با هم ذخیره میکنم و وقتی طرف تاریخ سمشی رو انتخاب میکنه برای مقایسه سیستم تاریخ میلادی شو میده و عمل مقایسه روی داده ها انجام میدم.
    کد مبدل تاریخ شمسی به میلادی با گرفتن 31 روز ها
    این کده درون فروم در حال اجرا
     private void dgv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
    try
    {
    string shamsi = dgv1.CurrentRow.Cells["ClmDateAngezaShamsi"].Value.ToString();
    string year = shamsi.Substring(0, 4);
    string manth = shamsi.Substring(shamsi.Length - 5, 2);
    string day = shamsi.Substring(shamsi.Length - 2, 2);
    dgv1.CurrentRow.Cells["ClmDateAngezaMeladi"].Value = ClsNeedCode.Miladi(year, manth, day);
    }
    catch
    {
    }
    }

    این کد داخل کلاس.
    public static string Miladi(string year, string month, string day)
    {
    //تبدیل تاریخ شمسی به میلادی
    try
    {
    PersianCalendar pc = new PersianCalendar();
    DateTime dt1 = pc.ToDateTime(int.Parse(year), int.Parse(month), int.Parse(day), 0, 0, 0, 0);
    return dt1.Year + "/" + dt1.Month + "/" + dt1.Day;
    }
    catch
    { return ""; }
    }

  15. #15
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    خودمم همین تو ذهنم بود

  16. #16

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    نقل قول نوشته شده توسط www.rayanehkhabar.com مشاهده تاپیک
    خودمم همین تو ذهنم بود
    پس این روش تو ذهنتون هستش که من گفتم رو انجام بدید من برای مرجوعی کالا سود زیان بر حسب تاریخ همین کار رو کردم تاریخ شمسی رو طرف انتخاب میکنه ولی سریع تاریخ میلادی محاسبه میشه و شرط برای کالا مرجوع شده یعنی تاریخ انقضا کالا و همین طور سود زیان رو شمسی انتخاب میکنم ولی تاریخ میلادی کالا بررسی میشه بر حسب تاریخ سیستم و اطلاعات رو نشان میده و میگه این کالا 2 روز دیگه فاسد میشه و میگه امروز ، این هفته ، این ماه یا سال چقدر فروش و سود زیان داره کالا.

  17. #17
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    همین روش جواب داد.. ظاهدا راه دیگه ای وجود نداره

  18. #18

    نقل قول: مشکل در ذخیره کردن روز 31 هر ما

    نقل قول نوشته شده توسط www.rayanehkhabar.com مشاهده تاپیک
    همین روش جواب داد.. ظاهدا راه دیگه ای وجود نداره
    نه وجو نداره ویژگی date , datetime, datetime2 همه شون تاریخ رو ذخیره میکنن ولی وقتی به تاریخ شمسی میرسه که مروبوط به ماه دوم و چارم هستش و روز 31 به غید شزط حالگیری میکنه و اجازه نمیده مسلما به همین خاطر باید از کلک رشتی استفاده کنید یه فیلد شمسی و یک فیلد میلادی شمسی از نوع nvarchar میلادی از نوع date چون وقتی از نوع date باشه تاریخ میشه روش عمل مقایسه رو انجام داد.

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

  1. مشکل در ذخیره کردن فیلد فارسی در SQL Server
    نوشته شده توسط behrooz در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: جمعه 27 بهمن 1391, 22:26 عصر
  2. مشکل در ذخیره کردن در بانک sql
    نوشته شده توسط iman_vakilian در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: چهارشنبه 22 خرداد 1387, 14:04 عصر
  3. مشکل در ذخیره کردن در اکسس
    نوشته شده توسط omideiran در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: شنبه 03 شهریور 1386, 11:40 صبح
  4. مشکل در ذخیره کردن فایل یا عکس بر روی سرور
    نوشته شده توسط sm در بخش ASP.NET Web Forms
    پاسخ: 16
    آخرین پست: شنبه 01 مرداد 1384, 21:59 عصر
  5. یک مشکل با ذخیره کردن محتویات یک daotable در یک فایل
    نوشته شده توسط ali reza omid ali در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: یک شنبه 22 خرداد 1384, 04:45 صبح

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

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