新 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
您正在比较 DATETIME
和 INTEGER
现在是 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');
我想为任何具有日期字段的记录插入 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
您正在比较 DATETIME
和 INTEGER
现在是 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');