新 table 如果日期字段早于当前时间则插入

New table insert if Date field is before the current time

我想为任何具有日期字段的记录插入 table,日期字段至少在 current datetime 之前 10 minutes。出于某种原因,我的 table 没有创建新的插入。下面是示例代码:

If Not Exists (Select * from dbo.Table where RecordName = @RecordName and DateAdd(Minute, 10, GETDATE()) >=1)
Insert Into dbo.Table (RecordName, DateField, Field3, Field4)
Value (@RecordName, GETDATE(), '0','0');

仅供参考,我使用 RecordName 作为参数。请帮忙!

你的问题是:

DateAdd(Minute, 10, GETDATE()) >=1

您正在比较 DATETIMEINTEGER

现在是 11/1/2017 8:27 我所在时区的上午,DateAdd(Minute, 10, GETDATE()) 会给你 '11/1/2017 8:37 AM' >= 1

作为 DATETIME 的 1 将计算为 1900-01-02 00:00:00.000 SELECT CAST(1 AS DATETIME)

因此您将测试何时不存在比 1900-01-02 00:00:00.000 更新的时间,我认为这在您的数据集中不太可能。

如何更正您的意图。您可能有一个 date/datetime 字段,如果您将其与

进行比较

DATEADD(minute,-10,GETDATE())

If Not Exists (Select * from dbo.Table where RecordName = @RecordName and DateField >= DateAdd(Minute, -10, GETDATE()))
Insert Into dbo.Table (RecordName, DateField, Field3, Field4)
Value (@RecordName, GETDATE(), '0','0');