Sql 计算字段之间的时间差
我正在临时表中计算时间。Sql 计算字段之间的时间差,sql,delphi,Sql,Delphi,我正在临时表中计算时间。 我有以下字段:DATE\u FROM,DATE\u TO,TIME\u FROM,TIME\u TO 这些字段都是DateTime。 为了计算TIME\u FROM和TIME\u To之间的差值,我添加了一个 名为TIME\u DIFFERENCE的字段,也是日期时间字段。数据库为绝对数据库。因此,在我的TEMP的oncalculatefields事件中,我添加了: procedure TForm1.TEMPCalcFields(DataSet: TDataSet);
我有以下字段:
DATE\u FROM,DATE\u TO,TIME\u FROM,TIME\u TO
这些字段都是DateTime。
为了计算
TIME\u FROM
和TIME\u To
之间的差值,我添加了一个
名为TIME\u DIFFERENCE
的字段,也是日期时间字段。数据库为绝对数据库。因此,在我的TEMP的oncalculate
fields事件中,我添加了:
procedure TForm1.TEMPCalcFields(DataSet: TDataSet);
begin
TEMP.Fields.FieldByName('TIME_DIFFERENCE').AsDateTime :=
(TEMP.FieldByName('TIME_FROM').AsDateTime) -
(TEMP.FieldByName('TIME_TO').AsDateTime);
end;
时差工作正常,但我遇到了一个困难:计算只在时间域之间工作。我不知道如何将
TIME\u FROM
链接到DATE\u FROM
字段。因为如果我选择从到的时间为22:00:00,从到的时间为06:00:00,我会得到16个小时的差值(应该是8)。我如何才能做到这一点,使我的时间从开始,从日期开始?最后一部分也是 在计算时差的地方编写sql查询
SELECT Field1, Field2, (TIME_FROM - TIME_TO) AS TIME_DIFFERENCE FROM SOME_TABLE
在Sql和Delphi中,日期/日期时间变量/字段包含数值
假设该值为1.0,则表示1天。1.5将代表1天12小时
所以,当你把22:00:00放到时间里,它的值是22/24。如果你把6:00:00放到时间上,变量的值是06/24,当你减去这些时,通常会得到16/24
我从你的问题中了解到的是,你要求的是今晚22:00和第二天早上06:00的差值。要进行正确的计算,您应该在Time_变量中添加1天。(06+24=30)30/24
还有一个小提示,让手术从另一个方向进行。不时地从。假设时间已经过去。那么你认为我想做什么呢?:)也许你需要将日期和时间合并到计算中,或者使用delphi中的函数,或者将日期和时间合并到计算中的日期和时间-是的…这就是我需要的。TEMP.FieldByName('time_TO')。你的意思是DateTime+24吗?只需在一天内加上+1(+24会加上24天)