مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

rasool65

عضویت از 1394/09/18

string was not recognized as a valid datetime مشکل

  • پنجشنبه 29 فروردین 1398
  • 01:41
تشکر میکنم

با سلام ، پروژه من ویندوز فرم و با زبان سی شارپ هست لذا برای تاریخ  از یک کامپوننت برای انتخاب تاریخ استفاده کردم ، حالا مشکل اینجاست که بعضی تاریخ ها رو ثبت نمیکنه ، جمع یا تفریق نمیکنه درواقع بعضی روز های خاص هستند ، مثلا 31 شهریور ، 29 و 30 و 31 اردیبهشت همچنین...

اول فکر کردم از کامپوننت هست ، عوض کردم و کل تاریخ ها عوض شد و با بدبختی جایگزین کردم ولی دیدم بازم همین خطا رو روی این تاریخ ها میده ، رفتم خود فیلد دیتا بیس و تاریخ رو دستی 98/2/29 زدم که دیدم بله.. اصلا همچین تاریخی رو میگه وجود نداره ، حالا اصلا نمیدونم چطوری باید این مشکل رو حل کنم ، اون فیلد دیتا بیس من از نوع Date هست ، وقتی nvarchar(10) کردم با موفیت ذخیره شد ولی خب دیگه نمیتونم بخونمش متاسفانه... یکی بگه این تاریخ ها رو چطوری میشه حل کرد؟ تاریخ من شمسی هست ولی ماه فبریه کلا 28 روز داره!! واسه همین نمیزاره دیتابیس که 29 و 30 و 31 داخلش ذخیره بشه.. 

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • پنجشنبه 29 فروردین 1398
  • 09:28

سلام

شما در فیلد تاریخ میلادی میخواهید تاریخ شمی نگهداری کنید؟!

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

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

کاربر سایت

rasool65

عضویت از 1394/09/18

  • جمعه 30 فروردین 1398
  • 15:11

مرسی چه پیشنهاد خوبی ! آره دوتا تاریخ میکنم و لیست ام رو برای نمایش از شمسی میخونم و مقایسه تاریخ ها و اعمال تغییرات و شرط ها رو با میلادی انجام میدم ... 

ممنونم..

الان من نزدیک 1000 تا رکورد دارم در جدول دیتا بیس ام ،

1-یک ستون دیگه اضافه میکنم بنام Date_G از نوع date 

2- کل رکوردهای ستون Date_P را به میلادی تبدیل میکنم و میریزم داخل ستون Date_G

3- ستون Date_P رو تبدیل به Varchar(10) میکنم.

مشکل اینه چطور میتونم با یه کوئری SQL بتونم کل دیتا های ستون Date_P رو تبدیل به میلادی کنم و داخل Date_G ذخیره (update)  کنم؟ بطوری که ID شون یکسان باشه تا تاریخی اشتباه آپدیت نشه؟

با تشکر 

کاربر سایت

rasool65

عضویت از 1394/09/18

  • شنبه 31 فروردین 1398
  • 01:25

بی زحمت یک نگاه به کوئری من بندازید ، برای مثال دو تا ستون دارم بنام های  birthday_p از نوع nvarchar(10) a که همه ی تاریخ های تولد رو به شمسی داخلش داره و birthday از نوع date  که همه تاریخ های تولد رو به میلادی قرار هست داشته باشه که الات در حال حاضر همه تاریخ های شمسی رو داره ... میخوام نظیر به نظیر از ستون birthday_p تاریخ شمسی رو بگیره و تبدیل شده اش رو داخل ستون birthday بریزه... از یک فانکشن تبدیل تاریخ استفاده کردم

UPDATE Tbl_personal 
SET 
    birthday = dbo.[UDF_Julian_To_Gregorian](dbo.[UDF_Persian_To_Julian](birthday_p))
WHERE
    personID IN 
(SELECT 
personID FROM Tbl_Personal)

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)