我是菜鸟,请问,在 DELPHI中如何获得两个日期间差几个月,有函数直接实现不?
比如说:20050101和20060901相差几个月?

解决方案 »

  1.   

    uses DateUtils;MonthsBetween(d1,d2)
      

  2.   

    ZCZB,由于我接受的是EDIT控件里的字符型日期,要求它们的相差月份,可是用了你的方法,老是提示:
    '20060101'is not a valid date and time
    程序如下:
    uses DateUtils;
    var
    tt1,tt2:Tdatetime;
    ````
    tt1:=strtodatetime(t1.text);
    tt2:=strtodatetime(t2.text);
    ````
    MonthsBetween(tt1,tt2)
      

  3.   

    20050101 怎么可能是datetime类型的呢   只有YYYY-MM-DD 也就是2005-01-01  才算是datetime 实现方法用formatdatetime来转换
      

  4.   

    楼上说的对,要想办法转换数据类型才行.
    MonthsBetween只接受DateTime类型的参数.
    20050101这种格式可能不能接受,lz可以用拆字串凑的办法:
    取前四位作为年
    五六位作为月
    七八位作为日
    然后在凑成 YYYY-MM-DD 的样子,再用strtodatetime转
      

  5.   

    喔,知道了,谢谢各位,现在又有个问题想请教:我在SQLSERVER 里,输入一组SQL语句:
     select tel,dhjf from aa order by tel compute sum(dhjf)
    dhjf是float型,想出现总计出来,可是结果没有啊??请教各位大虾了,假如我要求得符合条件的数据且出现汇总,该怎么做了呢?
      

  6.   

    SQL语句不对,现在查询分析器好好看吧
    group by ....