2017-07-26 46 views
0

我想写一个存储过程,将检查表中的列中的日期时间值(它将只有一列中的值)。如果存在,我想查看日期时间值是否在+5分钟的当前时间。如果是,那么我将执行另一个存储过程,然后更新该日期时间。SQL存储过程错误中的嵌套if语句。期待),和或或

如果该值根本不存在,则将当前日期插入到列中。

+0

请不要使用不适用于您的问题标签。我删除了数据库标记,因为它不清楚你实际使用了哪一个。请添加仅*的标签*您实际使用的数据库 –

+0

程序代码(如存储过程)是**高度特定于供应商的** - 因此请添加标签以指定您是否使用'mysql','postgresql', 'sql-server','oracle'或'db2' - 或者其他的东西。 –

+0

你应该消除你存在的前1名。这不是必需的。另外,当你设置你的变量时,你有顶部1但没有顺序,所以你不知道你会得到哪一行。最后但并非最不重要的....看看你的嵌套IF中的AND谓词。您将您的变量与同一个变量的计算值进行比较。你在这里有一些逻辑问题,但不太清楚你想做什么。 –

回答

1
IF (@DateToKeepForTrim >= dateadd(MINUTE,-5,(SELECT top 1 TrimCheck.TrimCheckDate FROM TrimCheck)) AND @DateToKeepForTrim <= dateadd(MINUTE,5, @DateToKeepForTrim) 

应改为:

IF (@DateToKeepForTrim >= dateadd(MINUTE,-5,(SELECT top 1 TrimCheck.TrimCheckDate FROM TrimCheck)) AND @DateToKeepForTrim <= dateadd(MINUTE,5, @DateToKeepForTrim))