sql - 带日期的自定义周数
问题描述
如何从 2016 年 5 月 1 日开始第 1 周,在 2017 年 4 月 30 日结束第 52 周。例如:2016 年 5 月 1 日 - 2016 年 5 月 7 日应该是第 1 周。SQL Server 相对于会计年度计算周数。这可能吗?我正在使用 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
解决方案
好吧,您可以使用日期算术:
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';
推荐阅读
- python - 根据多个条件拆分 DF 中的列
- python - browsermobproxy的python客户端可以在真机上使用吗?[解决]
- android - 迁移到 ViewBinding 后无法切换片段(未找到视图 nav_host_fragment)
- huawei-mobile-services - 如何使用 DevEco Studio 在华为手机上运行我的应用程序?
- python - Python CLR WinForms - 从现有表单打开另一个
- r - 使用 R 中的几行代码获取提供者和状态的平均金额
- python - PyAutoGUI Shift-Down 什么都不做
- php - php找不到fileinfo和intl
- firebase - Flutter Bloc 和 firebase 事件中“异步”功能的屈服状态
- python - 使用 python PIL 或 cv2 在一个文件夹中裁剪和切片多个图像,然后保存在另一个文件夹中