天不可用

时间:2008-12-18 06:35:46

标签: sql sql-server tsql datetime

我需要一个简单的SQL来完成以下任务:

问题:

当汽油车的燃油耗尽时,管理员会在燃油耗尽时记下日期时间(RunOutDate),并在燃油供应恢复时注明DateTime(ResupplyDate)。

我需要创建一份报告,告知有多少这辆铺位耗尽燃油。

例如

1/1/1 10:10至1/1/1 10:50应计为1

1/1/1 10:10至2/1/1 07:20应计为2

1/1/1 23:55至2/1/1 00:10应计为2

我无法使用DateDiff使用小时,因为24小时可能跨越2天。

TIA

2 个答案:

答案 0 :(得分:7)

DATEDIFF(d, RunOutDate, ResupplyDate) + 1

请记住,DATEDIFF总是计算您跨越的边界数量。几天(第一个参数d),它计算时钟午夜过去的次数。因此,要计算您所覆盖的天数,只需添加1。

答案 1 :(得分:4)

使用日期的DATEDIFF,然后加1。

DATEDIFF使用午夜计算天数,因此上面的每个示例都会得到0,1,1。然后加1。

DATEDIFF(day, '16 Dec 2008 10:10', '16 Dec 2008 10:50') + 1