Sql 周末的逻辑是53周
我正在尝试为所有周创建周末 我的逻辑是Sql 周末的逻辑是53周,sql,sql-server,sql-server-2008,week-number,Sql,Sql Server,Sql Server 2008,Week Number,我正在尝试为所有周创建周末 我的逻辑是 dateadd(day, 7-datepart(Weekday, basicstart), basicstart) 对于2013年12月29日至2013年12月31日的最后一周,它将周末生成为“2014年1月4日”” 但它并没有将2014年1月1日的数据合并到同一周的2014年1月4日的数据,而是生成了另一周的同名数据(2014年1月4日) 这意味着我的数据将分别在1月4日和1月4日这两周获得 有人能帮忙吗?那一周的一部分是在2013年,另一部分是在20
dateadd(day, 7-datepart(Weekday, basicstart), basicstart)
对于2013年12月29日至2013年12月31日的最后一周,它将周末生成为“2014年1月4日”
”
但它并没有将2014年1月1日的数据合并到同一周的2014年1月4日的数据,而是生成了另一周的同名数据(2014年1月4日
)
这意味着我的数据将分别在1月4日和1月4日这两周获得
有人能帮忙吗?那一周的一部分是在2013年,另一部分是在2014年 一年中的第一周和最后一周都有以下特点 a) 一年中总有53周 b) 一周可以有1到7天。7是最常见的 合并周 你可以这样做
CASE WHEN myweek = 53 THEN 1 ELSE myweek END AS myweek
合并1和53不会有帮助,因为这样你就有了
a) 每年总有52周
b) 一周可以有7到9天
c) 一周中的大部分时间可能在一年内,但您将其放在相反的一年。365天的年份总是跨越53周。366天的年份通常跨越53周,有时跨越54周。365天或366天的日历年将始终与相邻日历年至少共享一周
SQL风格的解决方案是创建并维护一个日历表,您可以在其中存储所有业务日历规则。一年中有52周或53周,一周通常正好有7天,如何?根据维基百科的说法,这是标准(),也是这里的标准(在NL中),似乎OP正在根据这个问题寻找这一点,或者非常接近这一点。你所要做的就是找出如何使365/7和366/7在没有小数点或舍入的情况下进行计算,你可以得到它。不,这不是必要的。一年中的第一周和最后一周可能包括另一年中的几天。因此,对于任何给定的一周,它可能是两年中的一周?我不确定这是否回答了您的问题为“是”或“否”,但2013年12月30日至2014年1月5日是一周,这一周有一周编号:2014年第1周。即使它也包含了从2013年起的两天。但是,重读这个问题,我现在不再认为这是OP想要的。是的,我知道一年中总有超过52周的时间。我只想在2014年1月的第一周增加53周(12月29日、30日和31日)的额外天数,因为这不是完整的一周,我的一周将在2014年1月4日的周六结束。是的,我知道一年中总有52周以上。我只想在2014年1月的第一周添加53周(12月29日、30日和31日)的多余天数,因为这不是完整的一周,我的一周将在2014年1月4日的Sat结束。编辑您的问题以添加您的模式和查询。你的问题现在太模糊了。