比如我有两个日期型数据A:2002-06-08;B:2003-01-01请问怎么计算它们之间相隔了多少天?

解决方案 »

  1.   


    如果是TDATETIME,天数只要用两个日期相减,再取个整就可以了。
    NoOfDays := Trunc(DateTime1-DateTime2);月份和年份稍稍麻烦一些。
      

  2.   

    http://expert.csdn.net/Expert/topic/1243/1243004.xml?temp=.5236017对你会有启发的
      

  3.   

    用DaysBetween函数Returns the number of whole days between two specified TDateTime values.UnitDateUtilsCategorydate/time routinesfunction DaysBetween(const ANow, AThen: TDateTime): Integer;DescriptionCall DaysBetween to obtain the difference, in days, between two TDateTime values.DaysBetween counts only whole days that have elapsed. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day.
      

  4.   

    可以转化为Timestamp类型的变量,这个变量不但能纪录该datetime的天,还能计算时刻距离午夜12:00多少秒,是个计算时间差距的好结构。结构中的两个变量看看帮助,应该很好用。
      

  5.   

    Rainsea(飞龙在天)的办法有时是会出错的
    NoOfDays := Trunc(DateTime1-DateTime2);
    因为DateTime并不是只有日期的,它同时还有时间(虽然你不用它),如果是DateTime1=2002-12-10 10:30:00
      DateTime2=2002-12-9 10:31:00
    则DateTime1-DateTime2<1,那么你能说这两个日期间的天数是0吗?
    解决方案是这样的
    NoOfDays := Trunc(DateTime1)-Trunc(DateTime2);
      

  6.   

    用SQL语言。
    'select * from 表名 where 日期 between #'+date1+'# and #'+date2+'# '
    自己加一个query轻轻松松搞定。