在sqlsever 表中“售书日期”是datetime型.现在想查询2008-1-1至2010-1-1之间的记录,下面这样写是否正确?select * from 零售表  where 售书日期>=2008-1-1 and 售书日期<=2010-1-1

解决方案 »

  1.   

    select * from 零售表 where 售书日期>='2008-1-1' and 售书日期<='2010-1-1'
    --or
    select * from 零售表 where 售书日期 between '2008-1-1' and '2010-1-1'
      

  2.   

    select * from 零售表 where 售书日期>='2008-1-1' and 售书日期<'2010-1-2'
      

  3.   

    select * from 零售表 where 售书日期>='2008-1-1' and 售书日期<='2010-1-1'
      

  4.   

    --注意,如果需要包括2010-1-1当天的话:
    select * from 零售表 where 售书日期>='2008-1-1' and 售书日期<'2010-1-2'
    select * from 零售表 where 售书日期 between '2008-1-1' and '2010-1-1 23:59:59.997'
      

  5.   

    select * from 零售表 where 售书日期 between '2008-1-1' and '2010-1-1'
    这是数据库里面要是用参数传进来的就不一样啦
     Declare @BeginDate DateTime,
     @EndDate DateTime
    select * from 零售表 where Covernt(char(10),售书日期,120) between Covernt(char(10),@BeginDate,120)and Covernt(char(10) ,@EndDate,120)
      

  6.   

    要加上两边的单引号。可以用between and。
      

  7.   

    create  table #temp
    (
    售书日期 datetime
    )
    insert into #temp
    select '2010-1-1' union all
    select '2010-10-3'Declare @BeginDate DateTime, @EndDate DateTime
    select @BeginDate = '2010-1-1', @EndDate = '2010-10-3'select * from #temp 
    where 售书日期 between @BeginDate and @EndDate
      

  8.   

    datetime类型分析
    http://topic.csdn.net/u/20100826/13/b96db679-5241-48e4-aeb7-0d7dc0b55cff.html