我有一个查询过滤记录在特定的日期时间范围。为了测试目的,我创建了一个包含变量的查询,并且不返回预期的结果。不同的结果,当使用查询变量和无变量
下面是该查询:
Declare @vTimeFrom datetime = '2015-04-22 20:00:00.000'
Declare @vTimeTo datetime = '2015-04-23 08:00:00.000'
Declare @pTime datetime = '2015-04-22 21:00:00.000'
Select @pTime
where Convert(Varchar(5),@pTime,108)
BETWEEN Convert(Varchar(5),@vTimeFrom,108) and Convert(Varchar(5),@vTimeTo,108)
它输出:
发现没有记录
上述查询返回任何内容。
但考虑这个查询:
Declare @vTimeFrom datetime = '2015-04-22 20:00:00.000'
Declare @vTimeTo datetime = '2015-04-23 08:00:00.000'
Declare @pTime datetime = '2015-04-22 21:00:00.000'
Select @pTime
where Convert(Varchar(5),'2015-04-22 21:00:00.000',108)
between Convert(Varchar(5),'2015-04-22 20:00:00.000',108)
and Convert(Varchar(5),'2015-04-23 08:00:00.000',108)
它输出:
月,2015年22
21:00:00
你不转换日期时间为varchar ... – jarlh
我只是为什么在ResultSet中两个查询冲突 –
查询1:转换(VARCHAR(5),日期时间,108),查询2:转换(VARCHAR( 5),varchar,108)... – jarlh