最简单的方法是在您的日期仓库日期维度中查找它,该维度应该有此列。如果没有,请咨询您的数据架构师。
如果您确实需要计算它,那么如果您有一些 SQL 计算,您可以使用 Lookup 活动和如下所示的 SQL:
sp_executesql N'select datepart(week,getdate()) weekOfYear'
这返回了以下结果:
Output
{
"firstRow": {
"weekOfYear": 6
},
...
Microsoft SQL 数据库(无论是 IaaS/box 产品、Azure SQL DB、托管实例还是 Azure Synapse Analytics)也支持 ISO week 作为DATEPART 函数的一部分,因此您可以这样做:
sp_executesql N'SELECT DATEPART( iso_week, GETDATE() ) isoWeekNum'
这也可以在核心 ADF(不是映射数据流)中使用内置函数实现。根据维基百科的文章,ADF 确实支持日期函数 dayOfYear 和 dayOfWeek 和 Week of Year 实际上只是使用这两个变量的数学:
此计算在 ADF 中作为表达式实现如下:
@string(div(sub(add(10, dayOfYear(utcNow())), dayOfWeek(utcNow())),7))
NB这是不是 ISO 周,而是一年中的一周,并且 ADF dayOfWeek 函数从星期日开始,按照 @ 0 987654323@。我在这里将其转换为字符串,以便将其分配给 ADF 中的变量,但这取决于您使用表达式的位置。
Mapping Data Flows 也支持weekOfYear 函数,所以如果您已经在使用 Mapping Data Flows,请考虑一下。