我有这些疑问:
String sql = "update time_tracker set logout = ?, totaltime = DATEDIFF(second, login, logout) from Time_Tracker where userid= ? AND CONVERT(Date, LOGIN) = CONVERT(Date, GETDATE())";
并且
select DATEDIFF(second, login, logout) as timeDiff
from Time_Tracker
where CONVERT(Date, LOGIN) = CONVERT(Date, GETDATE())
当我运行第一个查询并执行select * from table
时,我得到以下输出。
但是当我运行第二个查询时,结果是
这很令人困惑,请让我知道我哪里出错了,我该如何解决这个问题。
感谢。
答案 0 :(得分:2)
这部分查询不正确:
set logout = ?, totaltime = DATEDIFF(second, login, logout)
这是将logout
设置为参数中的新值,但将totaltime
设置为login
与之前存在的{{1}之间的差异(秒)价值。这就是为什么您只看到logout
,因为之前的394
值必须是logout
。
要解决此问题,您应该将相同的2016-08-25 20:23:28.000
参数传递给?
函数:
DATEDIFF()