访问减去时间

时间:2013-04-09 18:59:38

标签: sql ms-access datetime ms-access-2007

如何在Access表中减去两次?

查询必须自动执行。我需要在到达时减去剩余时间,然后我得到工作时间:

查询必须填写表格中的小时栏,因此我可以在c#程序中获取它。

  

[左] - [到达]

Image of table in Datasheet View

3 个答案:

答案 0 :(得分:4)

在访问中,如果字段是日期/时间类型,则只需减去它们并根据需要格式化输出。减法导致天数和天数。如果你想要它在几个小时内,只需乘以24,这将给你,小时和小时的分数

SELECT cdbl([Left] - [Arrived]) * 24 as worked_hours FROM yourtable

答案 1 :(得分:1)

DateDiff的

DateDiff(interval,date1,date2,[firstdayofweek],[firstweekofyear])

http://www.techonthenet.com/access/functions/date/datediff.php

DateDiff(“h”,[Arrived],[Left])

答案 2 :(得分:0)

正如Russell所提到的,使用DateDiff函数。我在测试MsAccess DB上进行了测试,但它确实有效。这是我的选择声明:

SELECT DateDiff('n',[Arrived],[Left])/60 AS Worked, 
       DateDiff('s',[Arrived],[Left])/3600 AS Worked2, 
       *
FROM Table1;

示例结果:

Worked               Worked2               Left                  Arrived
1                    0.999722222222222      4/9/2013 3:00:00 PM  4/9/2013 2:00:01 PM
0.833333333333333    0.833055555555556      4/9/2013 3:00:00 PM  4/9/2013 2:10:01 PM
1.66666666666667E-02 2.77777777777778E-04   4/9/2013 3:00:00 PM  4/9/2013 2:59:59 PM
24                   23.9997222222222       4/9/2013 3:00:00 PM  4/8/2013 3:00:01 PM

正如您所看到的,Worked2方法(第二种方法)更准确。