3
我想写一个Microsoft SQL Server 2005查询计算一个总值,按截止点上午10:00分组日期?按日期时间截止点上午10:00的SQL服务器组
如:表订单
DateReceived Total
01-01-2012 06:10:01 2
01-01-2012 08:10:01 2
01-01-2012 10:10:01 4
02-01-2012 08:00:07 4
02-01-2012 10:00:07 4
我想算每天的总使用10:00作为分界点,所以上午10点之前的任何订单出现在总的前一天,以及当天上午10:00之后。
我希望看到查询结果,如:
DateReceived Total
31-12-2011 4
01-01-2012 8
02-01-2012 4
我知道如何通过组只是在Microsoft SQL Server日期:
SELECT DISTINCT CONVERT(varchar, [DateReceived], 111) AS [dt_DateReceived],
SUM([Total]) AS perday
FROM [Orders]
GROUP BY CONVERT(varchar, [DateReceived], 111)
ORDER BY [DateReceived] DESC
但是我不确定如何添加上午10点使用Microsoft SQL Server截断时间。
使用MySQL,我可以通过减去的间隔分组实现这一点,但是我不能确定如何将此转化为SQL服务器:
GROUP BY
DATE(DATE_SUB(DateReceived , INTERVAL 10 HOUR))
谁能指教?
谢谢 杰克
+我不太明白的问题,直到我遇到你的解决方案。 –
嗨奥列格,为迟到的答复道歉,我被拉到另一个项目。感谢您的详细答案和测试脚本 - 完美!非常感激。 – Jack