获取指定日期在其所在(年/月)的第几周

获取指定日期在其所在(年/月)的第几周

每周的第一天为周日,如果这个周跨月份,则无论输入本周内任何一天,都会计算在上月的最后一周

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function [dbo].[Get_Week_No](@Date datetime,@Dimensionality varchar(100))
--每周第一天为日,周序号以周日所在序号顺次排列
returns varchar(100)
as
begin
declare @WkNumber varchar(100)
if(ISNULL(@Date,'')='')
begin
set @WkNumber='';
end
else
begin
if(@Dimensionality='YEAR')
BEGIN
--@Date在其所在年份的第几周
SELECT @WkNumber=datepart( wk, cast(@Date as date))
END
ELSE
BEGIN
--@Date在其所在月份的第几周
select @WkNumber= datepart(day,dateadd(day,1-(datepart(weekday,cast(@Date as datetime))),cast(@Date as datetime)))/7 + 1
END
end

return @WkNumber
end

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2022 Cooper
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信