如何使用带有查询结果的dateadd()
添加分钟?
像这样:
SELECT dateadd(minute, (SELECT
isnull(time1 - time2, 0)
FROM table
WHERE field = 111) , getdate())
在这种情况下,选择结果为288
,但不添加
我需要在函数
中添加这个288像这样:
SELECT dateadd(minute, 288, getdate())
答案 0 :(得分:9)
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, time1, time2), GETDATE())
FROM table
WHERE field = 111
如果这是你想要达到的目的,这将在time1和time2之间的分钟数增加到当前日期。
答案 1 :(得分:4)
我认为你想要的是这个查询:
SELECT DATEADD(minute, (ISNULL(time1 - time2, 0), GETDATE())
FROM table
WHERE field = 111
上面将time1
和time2
(假设time1和time2是某些整数值)之间的差异添加到表格中每条记录的当前日期{{1然而,请注意,此不会更新记录!
如果您想更新记录(即修改表而不是查询表),那么您需要使用field
:
UPDATE
我希望这有一定道理。你的问题并不是很清楚你想要做什么。
答案 2 :(得分:0)
如果您的数据类型不正确,这可能对您有用:
SELECT dateadd(minute, (SELECT
CAST(isnull(time1 - time2, 0) AS INT)
FROM table
WHERE field = 111) , getdate())
我仍然建议你看一些其他答案以获得更好的结构 - 即上面的Miky Dinescus代码将是:
SELECT DATEADD(minute, (CAST(ISNULL(time1 - time2, 0), GETDATE()) AS INT)
FROM table
WHERE field = 111