Sql 查询超过00:00(24:00)时显示空结果
我正在使用SQLServer2008ManagementStudio从呼叫中心数据库获取数据,我有一个查询来从代理获取登录/注销时间,但是每次注销值超过00:00(24:00)时,我都会得到null。我的问题是:Sql 查询超过00:00(24:00)时显示空结果,sql,sql-server-2008,null,Sql,Sql Server 2008,Null,我正在使用SQLServer2008ManagementStudio从呼叫中心数据库获取数据,我有一个查询来从代理获取登录/注销时间,但是每次注销值超过00:00(24:00)时,我都会得到null。我的问题是: SELECT ROW_DATE AS [DATE], LOGID AS [ID], LOGIN AS [Login], LOGOUT AS [Logout], LOGOUTREASON as [Reason] FROM db_xxxx.DBO.HAGLOG WI
SELECT
ROW_DATE AS [DATE], LOGID AS [ID],
LOGIN AS [Login], LOGOUT AS [Logout],
LOGOUTREASON as [Reason]
FROM db_xxxx.DBO.HAGLOG WITH (NOLOCK)
WHERE ACD = 2
AND (ROW_DATE BETWEEN '2015-05-05 00:00:00' AND '2015-05-05 23:59:59')
AND LOGID IN (98619)
示例:如果有人在下午06:00登录并在上午00:30注销,我将得到注销的空值
提取数据(05/05-13/05):
我将登录/注销值除以86400,以获得小时格式的正确时间。这似乎与您的查询无关,更像是应用程序中写入数据的错误(或者代理尚未注销)注销列似乎为空-查询无法修复此问题。我的猜测是一个错误,例如,应用程序假设要更新的记录必须与登录日期在同一天。您可以添加一些数据吗?例如@StuartLC提到的,您是否检查过将数据写入呼叫中心数据库的api是否对注销日期值没有任何限制?这可能会缩小您的问题范围。请将您的问题标题改为有意义的内容。如果删除了工具名(与此无关),则标题为“查询”,它与您遇到的问题或您提出的问题无关。SSMS只是一种管理工具。添加一些示例数据以及您希望从这些数据中获得的结果。谢谢。我没有这样做,因为我们用来通过报表提取数据的程序(Avaya CMS)可以正确地完成这项工作,甚至在00:00之后输入正确的日期,这就是为什么我认为我必须对查询做些什么才能使其工作,因为我需要用它自动生成Excel表格。
DATE ID Login Logout Reason
2015-05-05 00:00:00.000 98619 1430848943 1430860539 0
2015-05-05 00:00:00.000 98619 1430860554 NULL NULL
2015-05-06 00:00:00.000 98619 1430935439 1430935856 8
2015-05-06 00:00:00.000 98619 1430935868 NULL NULL
2015-05-07 00:00:00.000 98619 1431022232 NULL NULL
2015-05-08 00:00:00.000 98619 1431108233 NULL NULL
2015-05-09 00:00:00.000 98619 1431172858 1431195952 0
2015-05-11 00:00:00.000 98619 1431367328 1431367616 8
2015-05-11 00:00:00.000 98619 1431367977 NULL NULL
2015-05-12 00:00:00.000 98619 1431453768 1431453982 8
2015-05-12 00:00:00.000 98619 1431453997 NULL NULL
2015-05-13 00:00:00.000 98619 1431540095 1431540631 8
2015-05-13 00:00:00.000 98619 1431540639 NULL NULL