如果日期字段设为long就好办了:),我觉得是最简单的办法:比如:2002-05-20,可以表示为:20020520 这样一个数值,这样做加减都是比较简单的事情。哈哈。否则的话,实现起来比较麻烦。因为字符串加减,问题多一些。

解决方案 »

  1.   

    不知这样是否符合你的要求:
    SQL Server
    where datediff(m,fieldname,getdate())<=4Access:
    where datediff('m',fieldname,now)<=4
      

  2.   

    where 表中的日期 - 当前日期<=某一个日期"某一个日期"应该是一个数值吧, 表示天数.这样一来,你就应该明白了吧.where 表中的日期 >= 当前日期+某一个日期(天数)
      

  3.   

    不知这样是否符合你的要求
    SQL Server
    where datediff(m,fieldname,getdate())>=4
    Access
    where datediff('m',fieldname,now)>=4
      

  4.   

    其实你要取某一日期以前或以后的数据吧,你可以这样啊:
    select * from 表 where 表 日期 <='某一个日期'  //这是以前的数据
    select * from 表 where 表 日期 >='某一个日期'  //这是以后的数据
      

  5.   

    where datediff("m",表中的日期,现在的日期)>3 行吗?
      

  6.   

    random(随便)的方法应该可以。
      

  7.   

    5、DATEDIFF()
    DATEDIFF()函数语法如下
    DATEDIFF(<datepart> <date1> <date2>)
    DATEDIFF()函数返回两个指定日期在datepart方面的不同之处,即date2 超过date1
    的差距值,其结果值是一个带有正负号的整数值。针对不同的datepart,DATEDIFF()
    函数所允许的最大差距值不一样,如:datepart为second时,DATEDIFF函数所允许
    的最大差距值为68年;datepart为millisecond时,DATEDIFF()函数所允许的最大差距
    值为24 天20 小时30 分23 秒647 毫秒。
    例4-73:查询在本单位工作了8 年以上的员工的姓名和所在的部门,结果按在本单
    位工作的时间长短排序。
    use pangu
    select e_name, dept_id
    from employee
    where datediff(year, hire_date, getdate()) > 8
    order by hire_date
    运行结果如下:
    e_name dept_id
    -------------------- -------
    张龙1002
    赵虎1002
    (2 row(s) affected)
      

  8.   

    抱歉,DATEDIFF(<datepart> <date1> <date2>)应该是:
    DATEDIFF(<datepart>, <date1>, <date2>)
      

  9.   

    "select * from 表 where trim(表中的日期-120) <='" + Format(某一个日期,"yyyy-mm-dd")"(这个日期比表中的日期提前4个月)。
      

  10.   

    sql server 2000:
    select * from table where date <=dateadd('m',-4,getdate())
      

  11.   

    如果是Access 2000:sql="select * form table where date<=" & dateadd("m",-4,date$) & "'"