sql server作业生成错误

时间:2014-10-23 15:42:57

标签: sql-server sql-agent-job

执行作业时出现以下错误:

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身份验证作业?

由于

1 个答案:

答案 0 :(得分:0)

在这些情况下,建议使用dateformat。你可以这样做

set dateformat dmy
select cast('23/10/2014' as datetime)

尝试检查这一点,我相信它会起作用。与存储过程相同的错误是,您必须在Update语句之前包含SET DATEFORMAT DMY。