string SelectRangeSql = "select * from Table_Queue where queuetime between '" + StartDate + " 00:00:00' and '" + EndDate + " 23:59:59' order by patientpk desc,queuetime asc"怎么就选不出起点年月日StartDate(参数) 到 终点年月日EndDate(参数) 范围内的数据呢?(queuetime 类型为Vchar 格式如2009-7-10 11:18:52)

解决方案 »

  1.   

    转换成DATETIME 型 试试
      

  2.   

    string SelectRangeSql = 
    "select * from Table_Queue where queuetime between Cast('" + StartDate + " 00:00:00' as datetime) and cast('" + EndDate + " 23:59:59' as DateTime) order by patientpk desc,queuetime asc"
      

  3.   

    感觉即使是时间类型 Sql也是按字符串方式进行大小比较的吧
    StartDate EndDate 俩参数调试时没问题 参数顺利传过来了 可就是查不出数据来
      

  4.   

    日期比较可以直接用字符串,不用转换。
    输出一下最终的sql语句,在sql查询器里执行一下看看
      

  5.   

    谢谢您 问题解决了 但是我不太明白 cast作用是什么 而且queuetime 字段是字符串型的 为什么转换成datetime还可以比较 我原写法错在了哪里 向您学习 +10分
      

  6.   

    原来的EndDate参数是什么类型的?
    有些类型是不能用between的,也就是说不能比较大小的。
    在数据库中 比如说varchar,char等。
      

  7.   

    EndDate 字符串varchar类型 明白了 谢谢您 结贴 给您10分 请查收