通过给出和到达日期来检索记录的问题

时间:2010-02-08 07:52:15

标签: sql sql-server

我在通过提供和来日期检索记录时遇到问题。我想获取2010年2月8日的日期记录,我应该使用To和From日期字段。我试过了:

select * from dbo.BuzzMaster
where date >=  '2/7/2010'
  and date <=  '2/8/2010'

输出:

Not able to retrieve records for date '2/8/2010' 

我得到的日期'2/8/2010'的记录只有在我给出:

select * from dbo.BuzzMaster
where date >=  '2/7/2010'
  and date <=  '2/9/2010'

(或)

select * from dbo.BuzzMaster
where date >=  '2/8/2010'
  and date <=  '2/9/2010'

那么如何选择日期2/7/2010和'2/8/2010'来做到这一点?

提前致谢。

纳温

3 个答案:

答案 0 :(得分:4)

那些日期也有时间吗?如果有,你可以像这样获得2/8的记录:

WHERE Date >= '2/8/2010' AND Date < '2/9/2010'

这是因为'2/8/2010 12:34'&gt; '2010/2/8'。

(另一个原因是,我更喜欢在TSQL中以'yyyy-mm-dd'格式编写日期,这对文化不敏感。)

答案 1 :(得分:1)

使用此查询:

select * from dbo.BuzzMaster
where date between '2/7/2010' and '2/8/2010'

答案 2 :(得分:0)

如果日期包含时间段,那么您可以通过发出以下TSQL来获得所需的结果

select * from dbo.BuzzMaster 
where DATEADD(dd, 0, DATEDIFF(dd, 0, date))>=  '2/7/2010' 
  and DATEADD(dd, 0, DATEDIFF(dd, 0, date))<=  '2/8/2010' 

这将从您的日期中提取日期部分。