【发布时间】:2019-08-14 07:18:27
【问题描述】:
我有一个包含两列 login 和 logout 的表。如果一行在login 列中具有值“2019-08-07 20:37:12”,在logout 列中具有值“2019-08-07 21:14:16”,我想要登录时间值之间的差异和注销列。
我有:
SELECT logintime,CONVERT(varchar(6),DATEDIFF(second, login, logout)/3600)
+ ':'
+ RIGHT('0' + CONVERT(varchar(2),(DATEDIFF(second, login,logout) % 3600) / 60), 2)
+ ':'
+ RIGHT('0' + CONVERT(varchar(2),DATEDIFF(second, login, logout) % 60), 2)
AS 'HH:MM:SS' from face_login_logout
预期结果是'2019-08-07 01:23:04 '。
【问题讨论】:
-
您使用的是什么 DBMS?
-
基于
convert()和datediff()和+作为字符串连接运算符的使用,重新标记为sql-server -
如果登录和注销将在不同的日期,例如:登录“2019-08-07 23:37:12”注销“2019-08-08 00:14:16”什么日期预计?
-
您的实际结果是什么,为什么您希望答案中有日期?
-
但是你的结果应该是什么?在您的示例中,这两个日期之间的差异是 00:37:04。您的答案是如何得到“2019-08-07 01:23:04”的?我不明白
标签: sql sql-server tsql date-arithmetic sqldatetime