自定义星期编号和日期

时间:2019-02-12 22:33:30

标签: sql sql-server

我如何从2016年5月1日开始第1周的开始,在2017年4月30日结束第52周的结束。例如:2016年5月1日-2016年5月7日应该是第1周。SQLServer具有相对于会计年度进行计数的星期。这可能吗?我正在使用SQL Server 2016。

select order_date,
datepart(week from order_date)weekorder, product_code 
from my_table
where  order_date > '4/30/2016'
and order_date < '5/1/2017'

order_date  weekorder   product_code    
2017-03-01      9         16PSS  
2016-11-26      48         16PZS
2016-11-18      47        16PSST
2016-05-31      23        16PRS

要求:

order_date    weekorder    product_code 
2017-03-01      47         16PSS     
2016-11-26      22         16PZS
2016-11-18      21         16PSST
2016-05-31      5          16PRS

1 个答案:

答案 0 :(得分:2)

好吧,您可以使用日期算术:

select order_date,
       datediff(day, '2016-04-30', order_date) / 7 as weekorder,
       product_code 
from my_table
where order_date > '2016-04-30' and
      order_date < '2017-05-01';