select * from table where convert(varchar(8),column,112)='20041020'
select * from table where column>='20041028' and column<'20041029'
--后面一个效率比较高,如果有索引的话

解决方案 »

  1.   

    用datepart 
    示例
    GETDATE 函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。此示例显示 GETDATE 及 DATEPART 的输出。SELECT GETDATE() AS 'Current Date'
    GO下面是结果集:Current Date                
    --------------------------- 
    Feb 18 1998 11:46PM         SELECT DATEPART(month, GETDATE()) AS 'Month Number'
    GO下面是结果集:Month Number 
    ------------ 
    2            
      

  2.   

    看你格式的需要吧select * from table where convert(varchar(8),column,112)='20041020'
    或者
    select * from table where convert(varchar(8),column,120)='2004-10-20'convert()函數的參考不同﹐意義也不同﹐格式也不同
      

  3.   

    请hdhai9451(※★開拓者...准備去長安☆※)指教一下,112和120这两个数字表示什么意思呀?
     谢谢!
      

  4.   

    查看一下帮助文档中的Convert 函数,就明白了
      

  5.   

    select * from table where column>=cast('2004/10/01' as datetime) and column<=cast('2004/10/31' as datetime)
      

  6.   

    不推荐用convert,如果表中记录多的话,效率很低,因为每条记录的日期字段都要先转换然后才和等号后面的比较