众位高手,小弟想请教你们一个问题,D5中有没有这样一个日期函数或是用什么方法可以解决?请进来看一看好吗?(50分)

  • 主题发起人 主题发起人 Spring_Thunder
  • 开始时间 开始时间
S

Spring_Thunder

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,
我想求两个日期的差,得到的结果是天也就是这两个日期相差几天,
在SQL SERVER 中要以这样解决SELECT DATEDIFF(DD,'2002-01-01 02:06:08',
'2002-01-06 05:04:06') 这样得出来的结果是五天,当然了,我还可以在后
面加1叫它得到六天,可是这种东西在D5中要怎么样来实现,也许会非常简单,
可是我想了很长时间也没想出来,而且查以前的帖子也没有找到,还望各位指
点一下,谢谢!
 
delphi中,Tdatetime实际是浮点数,其中整数部分标示天数(从一个日期算起),小数部分
表示秒数……
将日期赋值给double类是可以的,然后取整。整数部分相减就是相差的天数。
——不知道是否“跑题”
 
为什么没有人回答呢?是不是这个问题太简单了,你们不屑于回答呢?
 
Button1.Caption := FloattoStr(Now-StrToDateTime('1990-3-1'));
 
now()-strtodate('2002-01-01') 试试结果是多少很这样就可以了
 
同意yeskert1,
其实在SQL SERVER中时间也是个浮点数,只算天的话对前边的整数部分相减就行了,如果需要
考虑四舍五入就用DELPHI里的舍入取整函数ROUND
 
可是我不用四舍五入,我只要取整,DELPHI中的取整函数是什么啊?
 
两个日期时间相减,然后将结果用 int()函数取整。
 
Delphi里面取整的函数是Trunc和Round,前者直接截尾,后者四舍五入。
取两个日期天数差的表达式是:
Trunc(Date1) - Trunc(Date2)
 
大家帮忙看一下这样行吗?
先用两个时间相减,再用TRUNC来取整,可以吗?
 
这样还是不能满足我的要求,我刚刚看了一下,
在SQL SERVER中DATEDIFF这个函数是直接两个日期相减,而上面说的这个可是
连日期带时间一起减,这样的话,如果不足24小时的话,它是算0天的啊?!
 
解决了,先把要相减的两个值取整,然后再去想减就可以了,
谢谢众位大哥大姐帮忙,派分了
 
后退
顶部