【发布时间】:2013-09-04 13:05:34
【问题描述】:
此代码不起作用:
conn.Execute("CREATE PROCEDURE mySuperProcedure
AS
BEGIN
IF GETDATE() >= DATEADD(hour," & waitHours & ",
DATEADD(minutes," & waitMinutes & ",'" & now & "')
BEGIN
blah blah...
END
END")
SQL 代理作业每隔几秒运行一次此过程。它在特定时间之前不会执行“blah blah...”部分,但它每次都会执行,因为 IF 语句返回 true。
可能有什么问题?这根本没有意义...... :'(
【问题讨论】:
-
我想你在这里忘记了一个额外的右括号
DATEADD(hour," & waitHours & ",DATEADD(minutes," & waitMinutes & ",'" & now & "')。它应该是DATEADD(hour," & waitHours & ", DATEADD(minutes," & waitMinutes & ",'" & now & "')) -
将其更改为打印 sql 而不是执行它并在此处发布。
-
同样
minutes应该是minute。 -
嗯,我写的很快,不是复制粘贴。错误原来是来自 ASP 的 now 代码给出了不同的日期格式,mm/dd/yyyy,而 SQL 在 dd/ 中运行毫米/年年
标签: sql date asp-classic comparison getdate