各位大侠,我用between 怎么会不行呢?请问between有格式限制吗?
我要解决的是这样的一个问题,由于我的束缚我把数据库里的日期的类型设为vchar现在要求一个日期时间访问。
例如:select * from dometable between 2008-1-25-6 12:12:12 and 2008-12-25-6 12:12:12 结果是没有达到查询出来数据。请问是什么问题呢?能否不改变数据库的数据类型来解决这个问题!

解决方案 »

  1.   

    SQL Server
    select * from dometable between '2008-1-25-6 12:12:12' and '2008-12-25-6 12:12:12' 
    Access
    select * from dometable between #2008-1-25-6 12:12:12# and #2008-12-25-6 12:12:12# 
      

  2.   

    可以用sql语句做一下类型转换(CONVERT)
    好多年没用过sql了,去数据库论坛问应该快一些
      

  3.   

    前面错了~
    应当是:SQL Server 
    select * from dometable WHERE 字段名 between '2008-1-25-6 12:12:12' and '2008-12-25-6 12:12:12' 
    Access 
    select * from dometable WHERE 字段名 between #2008-1-25-6 12:12:12# and #2008-12-25-6 12:12:12# 
      

  4.   

    日期类型?? ACCESS日期类型要在条件字符串两边加上"#" 即 #2008-08-08 08:00:00#
      

  5.   


    select * from dometable where date between 2008-1-25-6 12:12:12 and 2008-12-25-6 12:12:12 但是date不是日期类型的
      

  6.   

    select * from dometable where Format(date,"yyyy-mm-dd hh:mi:ss") between '2008-1-25-6 12:12:12' and '2008-12-25-6 12:12:12' 
      

  7.   

    你这个日期时间串太怪异:2008-1-25-6 12:12:12 
    正常情况下,你需要将字段转换为datetime,效率很低,如果时间串是规范的(月和日使用两位),就不需要转了
    select * from dometable where CONVERT(datetime,your_field) between '2008.1.25 12:12:12.000' and '2008.12.25 12:12:12.998' 
      

  8.   


    我打错了,哈哈!问题已经解决了,我用sql语句无法做到,但是我把判断放到界面上来做。在界面上来判断简单多了!
    非常感谢大家!