使用查询SQL Server 2008选择DATEADD分钟

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)

el *_*nho 9

SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, time1, time2), GETDATE())
FROM table
WHERE field = 111
Run Code Online (Sandbox Code Playgroud)

这将增加time1和time2之间的分钟与当前日期之间的差异,如果这是您想要实现的目标.


Mik*_*scu 4

我想你想要的是这个查询:

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)

我希望这有一定道理。从你的问题中并不清楚你想做什么。