gpt4 book ai didi

SQL 获取 ISO 周的 "ISO Year"

转载 作者:行者123 更新时间:2023-12-03 01:31:12 25 4
gpt4 key购买 nike

我需要计算一周分配到的年份。例如,2003 年 12 月 29 日被指定为 2004 年的第一周(我认为这仅适用于欧洲)。您可以使用以下代码来查看:

SELECT DATEPART(isowk, '20141229');

但现在我需要一种简单的方法来获取本周分配的年份。我目前所做的并不是那么优雅:

DECLARE @week int, @year int, @date char(8)

--set @date = '20150101'
set @date = '20141229'


SET @week = cast(datepart(isowk, @date) as int)

if @week = 1
begin
if DATEPART(MONTH, @date) = 12
begin
set @year = DATEPART(year, @date) + 1
end
else
begin
set @year = DATEPART(year, @date)
end
end

select @date "DATE", @week "WEEK", @year "YEAR"

如果有人知道更优雅的方式,那就太好了:-)

最佳答案

此解决方案问题中的代码未返回日期'1-1-2027'的正确值。

以下内容将返回我测试的所有日期的正确值(我测试了相当多的日期)。

SELECT YEAR(DATEADD(day, 26 - DATEPART(isoww, '2012-01-01'), '2012-01-01'))

取自:https://capens.net/content/sql-year-iso-week

关于SQL 获取 ISO 周的 "ISO Year",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com