执行作业时出现以下错误:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
这是我在作业的存储过程中执行的查询存储过程:
Update table1
Set Field1 = DurationComputeFunction(Customer_ID,Start_Date)
, Event_DateStamp = GetDate()
From table1
WHERE DateDiff(day,Start_Date,getdate()) < 90
此存储过程计算持续时间。它只需要客户ID和开始日期。
另一方面,我注意到以下查询:
select cast('23/10/2014' as datetime)
使用Windows身份验证返回相同的错误,但在sql server身份验证中执行时,不会返回错误(2014-10-23 00:00:00.000)。
因此,我推断可能使用Windows身份验证执行作业,这就是存储过程(查询)生成错误的原因。
我是对的吗?
如果是,是否有任何方法可以强制执行sql server身份验证作业?
由于
答案 0 :(得分:0)
在这些情况下,建议使用dateformat。你可以这样做
set dateformat dmy
select cast('23/10/2014' as datetime)
尝试检查这一点,我相信它会起作用。与存储过程相同的错误是,您必须在Update语句之前包含SET DATEFORMAT DMY。