怎么根据一个TDateTime的时间来查找所有和这个TDateTime里月份一样的记录呢?比如2004-7-1号, 我要查找所有2004-7-1号到2004-7-31号的数据。我本来想把前面的月份取出来分本加上1, 和31 然后用between 
但是有的月份是到30号所以很麻烦了, 不知道用什么方法可以简单点呢?

解决方案 »

  1.   

    Access  可以这样..
    select * from XX表  日期字段 like "2004-7-%"
      

  2.   

    Open2ye ~的
    就按他的办,LIKE最好用,偶喜欢。
      

  3.   

    你可以多种方法解决:
    1、将数据库中的日期字段在分离细致一些,分为年、月、日,那么查询的时候就是查询年、月等于条件的记录
    2、采用扩大搜索范围的办法,适当扩大如,查询2004年07月的记录,就把条件处理为大于等于2004-07-01 AND 小于2004-08-01,也很好处理
    3、用SQL的LIKE查询
      

  4.   

    使用Month函数(MS SQL Server 2000),其实大部分数据库都提供这个函数
    选择7月份的记录:
    select * from [youtable] where month([youdatefiled])=7
      

  5.   

    补充:
    以此类推,结合Year、Day等日期函数,可以得到更精确的数据集
    select * from [youtable] where month([youdatefiled])=7 and year([youdatefiled])=2000
    选择2000年7月的所有数据
    顺便提一句:SQL92/98是每个学习数据库编程的同志的必修课程。
      

  6.   

    还是like好,当然执行效率差了点
      

  7.   


    select * from table1 where month1>='2004-7-1' and month1 <='2004-7-31'
      

  8.   

    谢谢各位的解答 ,我用的是sql server2000 最后采用了回复人: 
    exu(大脸猫) ( ) 信誉:100 
    select * from [youtable] where month([youdatefiled])=7 and year([youdatefiled])=2000