1张表有100条记录,其中有一个记录是登记日期,我要如何搜索大于一个时间的所有记录?SELECT * FROM   A   WHERE   RIQI>'2007-1-27';?

解决方案 »

  1.   

    SELECT * FROM   A   WHERE   RIQI>'2007-1-27'你自己写的?不行?
      

  2.   

    SELECT * FROM   A   WHERE   RIQI>'2007-1-27'
    --------------
    错在哪
      

  3.   

    文字与格式字符串不匹配,是date型的
      

  4.   

    按说是可以的,SQL可以隐式转换的,我经常这么干的
      

  5.   

    你可以把该字段转换成datetime
      

  6.   

    SELECT * FROM   A   WHERE   RIQI>'2007-1-27'
    select * from a where datediff(d,riqi,getdate()) > 0
      

  7.   

    建议:
    因为SQL中数据类型中分为 日期型,和字符型,所以当日期比较时RIQI>'2007-1-27'其实是比较的字符的ACSII而不是真正意义上的日期比较而datediff这个函数是SQL本身的,他就是完成SQL中日期的比较所以,建议,所有的涉及到SQL日期比较的问题,都要用datediff来处理,会更简单,更准确,也更合理。
    我搞了2年多的数据库,总结的经验,大家可以批批。有好的解释更好。