如何在SQL Server中的日期表之间进行差异?

时间:2012-12-04 20:35:10

标签: sql sql-server

我有两个SQL请求。第一个代表一个人的进入时间和第二个退出时间。

这样的条目:

2012-11-30 07:33:53
2012-11-01 07:31:44
2012-11-02 07:35:21
2012-11-19 07:25:48
2012-11-20 07:26:01
...

这是退出:

2012-11-01 15:35:27
2012-11-02 15:48:34
2012-11-19 15:38:03
2012-11-20 15:40:25
2012-11-21 15:37:04
2012-11-22 15:35:28
...

我想要工作小时数(进入时间 - 退出时间)。我不知道该怎么做。

我的要求:

SELECT Sum(CONVERT(FLOAT, event201211.dbo.evacc.edate)) AS Expr1
FROM   dbo.uclassdef
       INNER JOIN dbo.uclass
               ON dbo.uclass.mclass = dbo.uclassdef.mclass
                  AND dbo.uclass.sclass = dbo.uclassdef.sclass
       INNER JOIN dbo.cards
               ON dbo.cards.fpointeur = dbo.uclass.fpointeur
       INNER JOIN event201211.dbo.evacc
               ON dbo.cards.fpointeur = event201211.dbo.evacc.fpointeur
WHERE  ( event201211.dbo.evacc.ecd = 1 )
       AND ( dbo.cards.fpointeur = '5456' )

你有解决方案吗?

修改1

该字段名称为Expr1。每个请求都有字段。这是日期列。我想要几个小时:分钟,但分钟也可以。

1 个答案:

答案 0 :(得分:0)

你有一些未知数(如数据类型,确切的输出格式等)。你可以用这个:

datediff(hh, Entry, Exit)