با سلام ، پروژه من ویندوز فرم و با زبان سی شارپ هست لذا برای تاریخ از یک کامپوننت برای انتخاب تاریخ استفاده کردم ، حالا مشکل اینجاست که بعضی تاریخ ها رو ثبت نمیکنه ، جمع یا تفریق نمیکنه درواقع بعضی روز های خاص هستند ، مثلا 31 شهریور ، 29 و 30 و 31 اردیبهشت همچنین...
اول فکر کردم از کامپوننت هست ، عوض کردم و کل تاریخ ها عوض شد و با بدبختی جایگزین کردم ولی دیدم بازم همین خطا رو روی این تاریخ ها میده ، رفتم خود فیلد دیتا بیس و تاریخ رو دستی 98/2/29 زدم که دیدم بله.. اصلا همچین تاریخی رو میگه وجود نداره ، حالا اصلا نمیدونم چطوری باید این مشکل رو حل کنم ، اون فیلد دیتا بیس من از نوع Date هست ، وقتی nvarchar(10) کردم با موفیت ذخیره شد ولی خب دیگه نمیتونم بخونمش متاسفانه... یکی بگه این تاریخ ها رو چطوری میشه حل کرد؟ تاریخ من شمسی هست ولی ماه فبریه کلا 28 روز داره!! واسه همین نمیزاره دیتابیس که 29 و 30 و 31 داخلش ذخیره بشه..
سلام
شما در فیلد تاریخ میلادی میخواهید تاریخ شمی نگهداری کنید؟!
بهتره تاریخ میلادی ذخیره کنید و در نمایش تبدیل به شمسی بکنید.
یا می تونید دوتا فیلد تاریخ یکی میلادی و یکی شمسی ذخیره کنید با این تفاوت که تاریخ شمسی باید nvarchar باشد
مرسی چه پیشنهاد خوبی ! آره دوتا تاریخ میکنم و لیست ام رو برای نمایش از شمسی میخونم و مقایسه تاریخ ها و اعمال تغییرات و شرط ها رو با میلادی انجام میدم ...
ممنونم..
الان من نزدیک 1000 تا رکورد دارم در جدول دیتا بیس ام ،
1-یک ستون دیگه اضافه میکنم بنام Date_G از نوع date
2- کل رکوردهای ستون Date_P را به میلادی تبدیل میکنم و میریزم داخل ستون Date_G
3- ستون Date_P رو تبدیل به Varchar(10) میکنم.
مشکل اینه چطور میتونم با یه کوئری SQL بتونم کل دیتا های ستون Date_P رو تبدیل به میلادی کنم و داخل Date_G ذخیره (update) کنم؟ بطوری که ID شون یکسان باشه تا تاریخی اشتباه آپدیت نشه؟
با تشکر
بی زحمت یک نگاه به کوئری من بندازید ، برای مثال دو تا ستون دارم بنام های 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)
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)