要做一个友情提示,提示离有效日期小于一个月的商品,而有效日期我用的是DATETIMEPICKER录入的,保存在数据库里的格式是2006-4-7 14:48:36,请问怎么与当前日期比较,实现提示

解决方案 »

  1.   

    var
      d:tdateTime;
      str:string;
    begin
      d := now+30;
      str := 'select * from 表名 where  时间字段<=:ddate'
      with query1 do
      begin
        close;
        sql.text := str;
        参数初始值
        open;
      end;
    end;
      

  2.   

    formatDateTime('YYYY-MM-DD',adoquery1.fieldByname(time).values)
      

  3.   

    uses
    DateUtils,...;var
      Days:Integer;
    begin
      ...
      Days:=DaysBetween(now,adoquery1.fieldByname(time).AsDateTime);
      if Days<=30 then
        提示
    end;
      

  4.   

    就你说的有效日期(2006-4-7 14:48:36)而言:
    小于这个月的表达式就是
    2006-3-7 14:48:36
    我觉得你应该不要输入有效日期的时分秒.这样好些!
    有效日期:
    between (有效日期)-30 AND 有效日期
      

  5.   

    var
      d:tdate;
      str:string;
    begin
      d := now+30;
      str := 'select * from 表名 where  时间字段<=:ddate'
      with query1 do
      begin
        close;
        sql.text := str;
        参数初始值
        open;
      end;
    end
    这样就行了
      

  6.   

    d := now+30;   中的now 不用定义的吗
    str := 'select * from 表名 where  时间字段<=:ddate' 中的:ddate是什么
    小弟新学,请多指教
      

  7.   

    d := now+30;   中的now 不用定义的吗
    str := 'select * from 表名 where  时间字段<=:ddate' 中的:ddate是什么
    小弟新学,请多指教
    -------------------------------------------------------------------
    1,now是函数,取系统时间;
    2,纠正下:ddate应该改成:d,作为一个参数用于sql语句变量;
      

  8.   

    用DaysBetween()比较合理,支持!!!
      

  9.   

    转成 TDateTime,然后用加减法就够了吧。
      

  10.   

    Where 
    DateDiff(Day,当前日期,有效日期)=0