PDA

View Full Version : GetDate Returns Null



supporter
جمعه 12 مرداد 1386, 15:18 عصر
چرا گاهی اوقات خروجی GetDat درست نیست. مثلا در SP زیر مقداری که در فیلد MDate درج میشه بعضی وقتها(و نه همیشه) NULL یا '...01-01-1900' است.




CREATE PROCEDURE SP1( @F1 INT,
@F2 INT
)
AS
DECLARE @CurDate DATETIME
SET @CurDate = GETDATE()
INSERT INTO Table1(F1, F2, MDate)
VALUES(@F1, @F2, @CurDate)

AminSobati
شنبه 13 مرداد 1386, 00:25 صبح
با کدی که شما نوشتین عجیبه چنین اتفاقی. تاریخ 1900 وقتی استفاده میشه که شما فقط قسمت ساعت یک تاریخ رو وارد کنین. آیا مقدار NULL دقیقا با همین کد بدست اومده؟

supporter
شنبه 13 مرداد 1386, 07:17 صبح
بله دقیقا، کد مربوطه یک Insert ساده است که تنها مقدار MDate را از Getdate می گیره.

AminSobati
شنبه 13 مرداد 1386, 20:47 عصر
مشکل اینجاست که من نمیتونم این مشکل رو برای خودم شبیه سازی کنم، یعنی NULL بگیرم از GetDate

supporter
شنبه 13 مرداد 1386, 22:43 عصر
خیلی ممنون از پیگیری تون
راستش برای خود من هم این اولین باره که این حالت پیش می آد.
سعی می کنم ببینم چرا این حالت رخ می ده (اگر چه به نظرم این شرابط ویژگی خاصی نداره که بشه بهش استناد کرد) در هر صورت اگه چیزی فهمیدم حتما اطلاع می دم.
بازهم ممنون

AminSobati
شنبه 13 مرداد 1386, 23:38 عصر
بد نیست Profile کنین ببینین آیا به شکل های دیگه که شما انتظارش رو ندارین آیا Record وارد جدول میشه یا خیر

Kamyar.Kimiyabeigi
یک شنبه 14 مرداد 1386, 08:10 صبح
فکر کنم متغیر رو بردارین و مستقیم از GETDATE استفاده کنین مشکل حل بشه

CREATE PROCEDURE SP1( @F1 INT,
@F2 INT
)
AS
INSERT INTO Table1(F1, F2, MDate)
VALUES(@F1, @F2, GETDATE())

reza_rad
یک شنبه 14 مرداد 1386, 11:04 صبح
فیلد MDate جدولتون از چه type ای هست؟
شاید مشکل از اینسرت باشه نه از GetDate .

supporter
یک شنبه 14 مرداد 1386, 22:11 عصر
فیلد MDate جدولتون از چه type ای هست؟
شاید مشکل از اینسرت باشه نه از GetDate .

فیلد MDate از نوع DateTime است.