PDA

View Full Version : تابع GetDate



JavanSoft
شنبه 05 شهریور 1384, 14:28 عصر
در مورد محاسبه فواصل زمانی در SQLServer مشکل جالبی دارم و ان اینکه اگر از تابع GETDATE() در بعد از ظهر استفاده کنم یک روز اختلاف است با زمانی که در صبح همین دستور را استفاده کنم

مثال

Select Convert(Int,BDate-GetDate()) As E1 From Main
متوجه شدم که این اشکال بدلیل ساعت در تابع GetDate است
آیا تابع و یا Setting وجود دارد که تنها تاریخ میلادی را در SQLSerevr ارائه کند؟

AminSobati
شنبه 05 شهریور 1384, 17:21 عصر
من از دیتای موجود در فیلد BDate اطلاعی ندارم. اگر چند نمونه رو اینجا پست کنین، ما هم امکان تست خواهیم داشت. ضمنا ساعت سرور (AM و PM) رو هم اگر یکبار چک کنین ضرری نداره

JavanSoft
سه شنبه 08 شهریور 1384, 09:33 صبح
BDate تاریخ لاتین است که از نوع DateTime تعریف شده و حاوی فقط تاریخ (بدون ساعت ) است

جناب آقای ثباتی
1)‌ چگونه ساعت سرور را تست کنم
2) آیا امکان دارد که به SqlServer بگوییم فقط تاریخ را در تابع GETDATEارائه کند؟ مثل ShortDate

AminSobati
سه شنبه 08 شهریور 1384, 23:11 عصر
دوست عزیزم منظورتون از تست چیه؟
در مورد قسمت دوم، شما فرمتهای مختلف تاریخ رو با CONVERT میتونین بدست بیارین

JavanSoft
دوشنبه 14 شهریور 1384, 13:34 عصر
ممنون از لطفت و وقتی که گذاشتید سعی می کنم مشکلم رو حل کنم

یاشار
دوشنبه 14 شهریور 1384, 15:39 عصر
مقدار زمان همیشه با در نظر گرفتن تاریخ و ساعت ذخیره می‌شه. اگر شما به یک متغییر از نوع DateTime یا ShortDate فقط مقدار تاریخ رو نسبت بدید، این متغییر با فرض اینکه دقت بیش از یک روز لازم نیست، ساعت نیمه شب رو به همراه تاریخ ذخیره می‌کنه.

شاید یه راه حل این باشه که یک SP بنویسید که مقدار GetDate رو بگیره و ساعتش رو برابر نیمه‌شب قرار بده و زمان جدید رو برگردونه. اینطوری تمام متغییرها تون از یک قانون پیروی می‌کنند و پیدا کردن مشکل راحتتر می‌شه.