[英]Sum the different date total
我的sql表中有以下数据:
Tran_Date | Amount
2013-05-01 20:09:49 | 50.00
2013-05-02 04:09:49 | 50.00
2013-05-02 20:09:49 | 500.00
我想在第二天凌晨5点之前将金额总计。 结果应该如下。
Amount
100.00
500.00
我尝试了以下代码,但结果错误:
SELECT DATEADD(hh, 5, DATEADD(dd, DATEDIFF(dd, 0, DATEADD(dd,1,f.TRAN_DATE)) AS sDate,
SUM(Amount)
FROM TRAN_TABLE
GROUP BY sDate
如何做到这一点? 谢谢
对于任何SQL Server版本
select [Date]=DATEADD(DAY,DATEDIFF(DAY,0,DATEADD(HOUR,-5,Tran_Date)),0),
Total=SUM(Amount)
from tbl
group by DATEADD(DAY,DATEDIFF(DAY,0,DATEADD(HOUR,-5,Tran_Date)),0)
order by [Date];
对于SQL Server 2008+,可以使用DATE数据类型
select [Date]=CAST(DATEADD(HOUR,-5,Tran_Date) as date),
Total=SUM(Amount)
from tbl
group by CAST(DATEADD(HOUR,-5,Tran_Date) as date)
order by [Date];
您需要减去5小时后提取一个DATE,然后按以下方式分组:
SELECT
CAST(DATEADD(hour, -5, TRAN_DATE) AS DATE) AS sDate,
SUM(Amount)
FROM TRAN_TABLE
GROUP BY CAST(DATEADD(hour, -5, TRAN_DATE) AS DATE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.