我使用下面的SQL查询来获取过去7天表中的数据.
SELECT * FROM emp WHERE date >= (SELECT CONVERT (VARCHAR(10),Getdate() - 6,101)) AND date <= (SELECT CONVERT (VARCHAR(10),Getdate(),101)) ORDER BY date
表中的数据也包含了去年的数据.
问题是我得到Date列的输出为
10/11/2013 10/12/2012 10/12/2013 10/13/2012 10/13/2013 10/14/2012 10/14/2013 10/15/2012 10/15/2013 10/16/2012 10/16/2013 10/17/2012 10/17/2013
解决方法
而不是将日期转换为varchar并将varchar与varchar进行比较.将varchar转换为日期时间,然后比较该方式.
SELECT * FROM emp WHERE convert(datetime,date,101) BETWEEN (Getdate() - 6) AND Getdate() ORDER BY date