不使用正确类型(日期)的道歉。使用nvarchar
的选择不佳,但我无法在此阶段进行转换。日期范围搜索 - 使用nvarchar的tSQL
的问题:
我希望能够在一定的日期范围来搜索数据,例如,16年1月10日 - > 16年2月19日
但是,它似乎只带回前两位数值的数据,因此无论月份和年份如何,都在10到19之间。
我的查询如下:
SELECT ID, Day, Date FROM oneHr$
WHERE date >= CONVERT(NVARCHAR, '10.01.16', 4)
AND date <= CONVERT(NVARCHAR , '19.02.16', 4)
ORDER BY Date ASC
任何想法?非常感谢并提前致谢。
这是正在返回什么:
ID Day Date
--------------------
943 fri 10.02.15
746 mon 10.02.16
234 tue 10.03.15
835 fri 10.04.15
988 tue 10.05.15
487 wed 11.01.16
343 wed 11.02.15
874 mon 12.01.16
663 thu 12.01.15
198 tue 12.02.15
775 wed 13.01.16
993 thu 14.01.15
375 fri 15.03.15
337 wed 16.12.15
784 tue 17.11.15
777 mon 18.08.15
252 thu 19.01.16
664 wed 19.02.15
UPDATE
所以,我已经改变了日期是datetime类型和所有看起来很不错。但是,我试图定义一个范围而不是硬编码,它不起作用。有任何想法吗?
set @date1 = '2016-01-01 00:00:00' -- Date1 (start range)
set @date2 = '2016-01-10 00:00:00' -- Date2 (end range)
/* Not Working */
select * from oneHr$
where Date >= @date1
and Date <= @date2
order by ID
/* Working */
select * from oneHr$
where Date >= '2016-01-01 00:00:00'
and Date <= '2016-01-10 00:00:00'
order by ID
已解决!现在已经很晚了,我没有正确整理我的tSQL脚本。因此,转换为日期时间,一切正常。 – scg