本人想在VB程序中完成对时间的模糊查询功能,比如我想查2001年10月份的记录,使用了如下SQL语句:
 
    
     rst.Open str = "Select * From table1 where 完成时间 like '2001-10-*' ", con, adOpenDynamic, adLockOptimistic发现运行该语句后所得到的记录集中无记录,然而table1中确实存在满足该条件的记录,不知错在哪里?请大侠赐教。

解决方案 »

  1.   

    试试
     rst.CursorLocation=adUseClient '设置客户端游标
     rst.Open str = ......
      

  2.   

    把日期类型转为字符串类型
    对于oracle数据库
    Select * From table1 where to_char('YYYY-MM-DD', 完成时间) like '2001-10-*'
      

  3.   

    时间不能这么LIKE比较,要用BETWEEN或者用大于或者小于进行比较。
    如你想查询10月份的数据:Select * From table1 where 完成时间 >= '2001-10-1' and 完成时间 < '2001-11-1'==========================
    免费的学习、交流、源码、工具下载网站,欢迎大家访问!
    http://www.j2soft.cn/
      

  4.   

    ACCESS:
    Select * 
    From table1 
    where format(完成时间,"YYYY-MM")='2001-10'SQL:
    Select * 
    From table1 
    where convert(char(7),完成时间,120)='2001-10'
      

  5.   

    本人用的数据库为ACCESS, 我的程序需要在VB程序中完成对时间的模糊查询功能,查2001年10月份的记录只是一个例子,我知道用BETWEEN语句,希望大家能告诉我如和使用LIKE对时间字段进行模糊查询的SQL语句。 谢谢大家
      

  6.   

    把*改为%"Select * From table1 where 完成时间 like '2001-10-%'",
      

  7.   

    ACCESS数据库要用##括起来:
    "Select * From table1 where 完成时间 like #2001-10-%#",
      

  8.   

    I服了U一种
    Select * From table1 where year(完成时间)=2001 and month(完成时间)=10另一种用Between and
      

  9.   

    faysky2() 
    ACCESS数据库要用##括起来:
    "Select * From table1 where 完成时间 like #2001-10-%#"
    ---------------------------------------------------
    ACCESS数据库要用##括起来么? 2001-10-%这种形式不好
      

  10.   

    Select * From table1 where format(完成时间,"yyyy-MM-dd") like '2001-10-%'
      

  11.   

    Select * From table1 where format(完成时间,"yyyy-MM-dd") like '2001-10-*'
      

  12.   

    绝对可行:
    Select * From table1 where format(完成时间,'yyyy-MM-dd') like '2001-10-*'