soa*_*ing 6 sql sql-server sql-server-2008
如何使用dateadd()查询结果添加分钟?
像这样:
SELECT dateadd(minute, (SELECT
isnull(time1 - time2, 0)
FROM table
WHERE field = 111) , getdate())
Run Code Online (Sandbox Code Playgroud)
在这种情况下,选择结果288但不添加
我需要在函数中添加这个288
像这样:
SELECT dateadd(minute, 288, getdate())
Run Code Online (Sandbox Code Playgroud)
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, time1, time2), GETDATE())
FROM table
WHERE field = 111
Run Code Online (Sandbox Code Playgroud)
这将增加time1和time2之间的分钟与当前日期之间的差异,如果这是您想要实现的目标.
我想你想要的是这个查询:
SELECT DATEADD(minute, (ISNULL(time1 - time2, 0), GETDATE())
FROM table
WHERE field = 111
Run Code Online (Sandbox Code Playgroud)
上面将time1和之间的差异time2(假设 time1 和 time2 是一些整数值)添加到表中每条记录的当前日期,其中field111。但是请注意,这不会更新记录!
如果您想更新记录(即修改表而不是查询它),那么您需要使用UPDATE:
UPDATE table
SET someField = dateadd(minute, (isnull(time1 - time2, 0), getdate())
WHERE field = 111
Run Code Online (Sandbox Code Playgroud)
我希望这有一定道理。从你的问题中并不清楚你想做什么。