首页 > 解决方案 > TSQL - 如何确定给定周数的一周的第一天和最后一天

问题描述

我有以下格式的数据:

TrDate:2018-01-01 00:00:00.000 | Amount: 10.00
TrDate:2018-01-02 00:00:00.000 | Amount: 20.00

我想在每周级别合并数据:

Week:1 | Start Date: | End Date:| Total Amount

我有查询每周合并数据,但我不知道如何获取相应周的开始日期和结束日期。这是我的查询:

 SELECT      DATEPART(wk, trdate)     weekno,
     round(SUM(amount),2) AS total_amount
 FROM        <table>
 GROUP BY    DATEPART(wk, trdate);

仅供参考:一周从周日开始,到周六结束。

标签: sqlsql-server

解决方案


尝试这个:

select weekno, weekStart, weekEnd,   round(SUM(amount),2) AS total_amount from 
(
  SELECT      
    DATEPART(wk, trdate)     weekno,
    DATEADD(dd, -(DATEPART(dw, trdate)-1), trdate) [WeekStart],
    DATEADD(dd, 7-(DATEPART(dw, trdate)), trdate) [WeekEnd],
    amount
  from table1
)t
group by Weekno, weekstart, weekend

推荐阅读