select * from guanggao where endtime - '2009-11-20'>=3 and endtime - '2009-11-20'<=5我想获取 数据时间是后面的3-5的日期
endtime - '2009-11-20'>=3 这个写法有错误 ,不知道是endtime - '2009-11-20'>=? 等于多少的,那个大哥知道告诉下?

解决方案 »

  1.   

    转化成between不就行了,何必用麻烦的sql函数between '2009-11-23' and '2009-11-25'
      

  2.   

    那又有什么关系,你在程序里面把它算好传到sql语句里面不就好了
      

  3.   

    看是什么数据库了,不同的数据库是不一样的。sqlserver有datediff函数,oracle的话可以通过to_date来将字符串传换成日期,再进行比较
    sqlserver:
    select * from guanggao where datediff(d,endtime,'2009-11-20)>=3 and datediff(d,endtime,'2009-11-20)<=5 
    datediff日期比较的位置可以简单调试一下,我记得不是很清楚了。
    oracle:
    select * from guanggao where (endtime-to_date('2009-11-20','yyyy-mm-dd'))>=3 and (endtime-to_date('2009-11-20','yyyy-mm-dd'))<=5
      

  4.   

    上面这位大哥 mysql的怎么写法?我用的是mysql的
      

  5.   

    其实当前日期是可以通过数据库函数获取的。mysql当前日期获取的函数是getdate()