我需要一个简单的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
答案 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