PDA

View Full Version : چگونگی مقایسه تاریخ و زمان فعلی سیستم با تاریخ و زمان ذخیره شده



Ishtar_4552
چهارشنبه 13 بهمن 1389, 18:38 عصر
با سلام به همه دوستان
من در یکی از صفحات سایتم امکان وارد کردن تاریخ و زمان ارسال پیامک را قرار دادم که این تاریخ(تاریخ شمسی) و زمان در دیتابیس ذخیره می شه،بعد برای چک کردن اینکه آیا زمان و تاریخ فعلی سیستم با زمان و تاریخ موجود در دیتابیس مطابقت داره یا نه، لازمه تاریخی که مربوط به گذشته هست رو اصلا در نظر نگیره و اگه محتویات فیلد های تاریخ و زمان مربوط به گذشته باشند از اونها صرف نظر کنه، برای اینکار لازمه که از توابع مربوط به رشته ها استفاده کنم یا اینکه راه ساده تر و بهینه تری وجود داره؟
ممنون می شم از راهنماییتون.:لبخندساده:

Keramatifar
چهارشنبه 13 بهمن 1389, 20:24 عصر
اگر جنس فیلد مورد نظر را DateTime بگیرید هم در دات نت و هم در SQL Server به راحتی می توانید با توابع ویژه کار با تاریخ با آن کار کنید.

si6arp
چهارشنبه 13 بهمن 1389, 22:55 عصر
اگر جنس فیلد مورد نظر را DateTime بگیرید هم در دات نت و هم در SQL Server به راحتی می توانید با توابع ویژه کار با تاریخ با آن کار کنید.

ممنون از راهنماییت دوست من . اما میشه یه نمونه از این چیزی که فرمودین بزارید ؟

Mostafa_Dindar
چهارشنبه 13 بهمن 1389, 23:15 عصر
ممنون از راهنماییت دوست من . اما میشه یه نمونه از این چیزی که فرمودین بزارید ؟

سلام ،

شما داده مربوط به تاریخ رو چطور در دیتابیس نگه میدارید ؟ به صورت رشته ؟ Int ? یا DateTime که من هم مثل دوست قبلی پیشنهاد میکنم به صورت DateTime یا SmallDateTime ذخیره کنید .

موفق باشید

si6arp
پنج شنبه 14 بهمن 1389, 10:14 صبح
ممنون از توجه شما به پست بنده . نوع فیلد من : DateTime است که به صورت اتوماتیک با تابع "getDate()" پر میشه . !!!!

Ishtar_4552
جمعه 15 بهمن 1389, 15:15 عصر
برای اجرای یک عمل خاص در یک زمان و تاریخ مشخص هنگام کار با توابع تاریخ و زمان ایراد دارم.
برای تاریخ و زمان در جدولم دو فیلد جداگانه در نظر گرفتم ، برای وارد کردن ساعت، کاربر ساعت رو به صورت 24 ساعته وارد می کنه مثلآ برای ساعت 9 شب لازمه که کاربر 21:00 رو وارد کنه و هنگام مقایسه اگر بخواهم
برای بدست آوردن زمان فعلی سیستم از دستور timeofdayاستفاده کنم مثلآ اگر ساعت فعلی 9 شب باشه سیستم به جای اینکه ساعت رو 21 نشون بده 9 رو نشون میده و مثلا اگر زمان فعلی 9 صبح باشه سیستم 21 نشون میده یعنی برعکس اون چیزی که کاربر مشخص کرده و هنگام بدست آوردن تفاضل ساعت ها دچار مشکل می شم.
در مورد تاریخ هم یک چنین مشکلی دارم ،وقتی از توابع تبدیل تاریخ میلادی به شمسی استفاده می کنم ،مثلآ روز 31 شهریور برای ما از ساعت 12 شب شروع میشه در حالی که توی توابع تبدیل تاریخ شمسی تاریخ سیستم رو تا ساعت 12 ظهر فردا 30 شهریور نشون میده و از اون موقع به بعد میشه 31 شهریور مثلآ اگر من بخوام در روز 31 شهریور ساعت 6 صبح یک پیام ارسال بشه ، از اونجایی که سیستم 6 صبح تاریخ رو 30 شهریور نشون میده پس پیام توی اون تاریخ و زمانی که من میخوام ارسال نمیشه.
آیا راهی وجود داره که بشه مقایسه دقیق رو انجام داد؟