با سلام.
من تاریخ حال رو با DateTime.Now در دیتابیس که فیلدی از نوع datetime داره ذخیره میکنم . به طور مثال
2019-07-09 11:35:50.340 ذخیره میشه در دیتابیس. حالا میخوام کاربر یه تاریخ رو از باکس تاریخ که از .Bootstrap-PersianDateTimePicker استفاده میکنه و تاریخ و زمان شمسی رو میشه انتخاب کرد انتخاب کنه و مقایسه کنم با اون تاریخ میلادی. حالا باید این تاریخ شمسی ابتدا به میلادی تبدیل شه دیگه
Persian Calendar pc = new Persian Calendar(); DateTime dt = new DateTime(1398, 05, 04, 12, 22, 22, pc);
حالا اینجوری تبدیل میکنم به میلادی سال و ماه و روزو.. رو فرضا جدا کردم از هم و به خط دوم دادم. اما این جوری تبدیل به میلادی انجام میشه ولی خروجی به این فرمته
Date = {7/26/2019 12:00:00 AM}
که وقتی تو کوری میخوام با تاریخ داخل دیتابیس که میلادیه مقایسه کنم و بگم مثلا تاریخای بیشتر از این رو بیار نمیشه. نمیتونم - رو هم با / ریپلیس کنم چون از نوع دیت تایمه . چه جوری میشه اینا یک شکل شن و قابل مقایسه؟؟
درود بر شما
1- اگر توسط کوئری SQL می خواید مقایسه کنید به راحتی می تونید مقدار مورد نظر رو از طریق Parameters با فیلد مورد نظر مقایسه کنید. اگر نمی شه کدتون رو اینجا قرار بدید.
2- اگر در درون C# می خواید مقایسه کنید باز مشکلی نباید باشه به راحتی می تونید با Parse کردن به نوع تاریخ مقایسه بکنید. اگر از درون برنامه انجام می دید کدتون رو قرار بدید.
فقط یه نکته تو صحبتتون بود و اونم اینه موقع تبدیل ساعت شما تبدیل به 12:00:00 شده که حتما حتما تابع داخل کلاس تبدیل تاریخ شمسی رو باید کنترل کنید. نباید اینطوری بشه. یا اگر راهی ندارید تاریخ و ساعت رو جداگانه ذخیره کنید.
از طریق لینک میخوام مقایسه کنم. توضیح دادم چون فرمت های تاریخ میلادی که سیو شده با اینی که تبدیل شده به شمسی یکی نیست مقایسه امکان پذیر نیست . اصلا اینا به کنار روشی هست که تاریخ شمسی رو به این فرمت میلادی در بیارم؟
2019-07-09 11:35:50.340
فرقی نمی کنه لینک باشه یا ADO.NET یا...
شما اگر سمت SQL می خواید مقایسه کنید که دستوراتش مشخص هست.
اگر در سمت کد خودتون می خواید مقایسه کنید مقداری که می خونید رو در یک متغیر DateTIme بریزید و مقایسه کنید.
گفتم قبلا هم مشکل اینه وقتی به دیت تام تبدیل میکنم یه فرمت خاصی داره که با فرمتی که تو دیتابیسمه فرق داره پس قابل مقایسه نیست و اگه بخوام فرمتشو تغییر بدم باید از ریپلیس و استرینگ استفاده کنم که با بازم فرمتش با دیت تایمی که دارم نمیشه مقایسه کرد
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)