SQL 时钟位置的 DATEDIFF

SQL DATEDIFF for clock positions

我需要计算时间之间的时钟位置数(小时)。

数据库有列(Clock_At_From、Clock_To)

具有如下值:

10, 2
6, 9

我使用这个 sql 查询来获取两次之间的小时数。

SELECT DATEDIFF("h", "2005-05-05" + str(c.Clock_At_From) + ":00:00", "2005-05-05" + str(c.Clock_To) + ":00:00")   
FROM [Conditions] as c

“2005-05-05”和“:00:00”只是一个占位符,我只关心时间。

这有点管用。但是当数字是:

10, 2

returns-8

如果数字为负,我需要将值加 12。我该怎么做?

使用 MS-Access

你可以这样写查询。本例写24小时

SELECT IIF(clock_to - clock_at_from < 0, 
           24 - (clock_at_from - clock_to),
           clock_to - clock_at_from) AS diff
FROM Conditions