Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 为什么查询在使用日期筛选器时返回一行,而它不应该';T_Sql Server - Fatal编程技术网

Sql server 为什么查询在使用日期筛选器时返回一行,而它不应该';T

Sql server 为什么查询在使用日期筛选器时返回一行,而它不应该';T,sql-server,Sql Server,我有一个查询,它试图根据日期过滤信息,但不太有效 使用此查询: select CONVERT(VARCHAR, r.ondate, 111) from WS_ACTIVITY r SELECT r.* FROM [dbo].[WS_ACTIVITY] r WHERE r.request_type = 2 OR r.request_type = 7 OR r.request_type = 51 AND (CONVERT(VARCHAR, r.ondate, 111) BETWEEN '20

我有一个查询,它试图根据日期过滤信息,但不太有效

使用此查询:

select CONVERT(VARCHAR, r.ondate, 111)
from WS_ACTIVITY r
SELECT r.*
FROM [dbo].[WS_ACTIVITY] r
WHERE r.request_type = 2 OR r.request_type = 7 OR r.request_type = 51  AND 
(CONVERT(VARCHAR, r.ondate, 111) 
BETWEEN '2017/10/18' AND '2017/10/18') ORDER BY r.user_id
我得到这个结果:

------------------------------
2017/03/16
但在运行此查询时:

select CONVERT(VARCHAR, r.ondate, 111)
from WS_ACTIVITY r
SELECT r.*
FROM [dbo].[WS_ACTIVITY] r
WHERE r.request_type = 2 OR r.request_type = 7 OR r.request_type = 51  AND 
(CONVERT(VARCHAR, r.ondate, 111) 
BETWEEN '2017/10/18' AND '2017/10/18') ORDER BY r.user_id
我得到以下结果:

id          egn_bul              request_xml                                                                                                                                                                                                                                                      response_xml                                                                                                                                                                                                                                                     user_id     user_name                                                                                            user_department_id user_department_name                                                                                 request_id  request_type is_from_cashe ondate                  ondate_response
----------- -------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- ---------------------------------------------------------------------------------------------------- ------------------ ---------------------------------------------------------------------------------------------------- ----------- ------------ ------------- ----------------------- -----------------------
7           8903304365                                                                                                                                                                                                                                                                            NULL                                                                                                                                                                                                                                                             NULL        NULL                                                                                                 NULL               NULL                                                                                                 NULL        7            1             2017-03-16 00:00:00.000 NULL
当我不应该的时候,我错过了什么?

试试这个

(r.request_type = 2 OR r.request_type = 7 OR r.request_type = 51) 
 AND (CONVERT(VARCHAR, r.ondate, 111) BETWEEN '2017/10/18' AND '2017/10/18')
所以这两个子句都应该是true才能返回结果。这与

(r.request_type = 2 OR r.request_type = 7 OR r.request_type = 51) 
 AND (CONVERT(VARCHAR, r.ondate, 111) BETWEEN '2017/10/18' AND '2017/10/18')

因此,这两个子句都应该为true才能返回结果。这与

有关,代码应该如下所示:

SELECT r.*
FROM [dbo].[WS_ACTIVITY] r
WHERE (r.request_type = 2 OR r.request_type = 7 OR r.request_type = 51 ) AND (CONVERT(VARCHAR, r.ondate, 111) BETWEEN '2017/10/18' AND '2017/10/18') ORDER BY r.user_id

在代码发布条件中,
r.request_type=7
为真,因此您的数据没有差异,因为您的条件之间有
,代码应如下所示:

SELECT r.*
FROM [dbo].[WS_ACTIVITY] r
WHERE (r.request_type = 2 OR r.request_type = 7 OR r.request_type = 51 ) AND (CONVERT(VARCHAR, r.ondate, 111) BETWEEN '2017/10/18' AND '2017/10/18') ORDER BY r.user_id
在代码发布的条件中,
r.request_type=7
为真,因此您的数据没有差异,因为您的条件之间有

有一个附加的“and”,但这是有效的。非常感谢。还有一个额外的“和”,但这起作用了。非常感谢。