跳到主要内容 跳到补充内容

week - 脚本和图表函数

此函数返回一个整数,表示与输入的日期对应的周数。

语法:  

week(timestamp [, first_week_day [, broken_weeks [, reference_day]]])

返回数据类型: 整数

参数
参数 说明
timestamp 要评估的日期或时间戳。
first_week_day

指定一周的开始日期。如果忽略,使用 FirstWeekDay 变量的值。

可能的值 first_week_day 为:周一为 0,周二为 1,周三为 2,周四为3,周五为 4,周六为 5,星期日为 6。

有关系统变量的详细信息,请参见FirstWeekDay

broken_weeks

如果不指定 broken_weeks,则变量 BrokenWeeks 的值将用于定义周是否已中断。

有关系统变量的详细信息,请参见BrokenWeeks

reference_day

如果不指定 reference_day,则变量 ReferenceDay 的值将用于定义将一月的哪一天设置为定义第 1 周的参考日。默认设置下,Qlik Sense 函数使用 4 作为参考日。这意味着第 1 周必须包含 1 月 4 日,换句话说,第 1 周始终至少具有 1 月份的前 4 天。

有关系统变量的详细信息,请参见ReferenceDay

week() 函数确定日期属于哪一周,并返回周数。

Qlik Sense 中,创建应用程序时获取区域设置,相应的设置作为环境变量存储在脚本中。这些用于确定周数。

这意味着大多数欧洲应用程序开发人员都会获得以下环境变量,与 ISO 8601 定义相对应:

Set FirstWeekDay =0; // Monday as first week day Set BrokenWeeks =0; // Use unbroken weeks Set ReferenceDay =4; // Jan 4th is always in week 1

北美应用程序开发人员通常会获得以下环境变量:

Set FirstWeekDay =6; // Sunday as first week day Set BrokenWeeks =1; // Use broken weeks Set ReferenceDay =1; // Jan 1st is always in week 1

一周的第一天由 FirstWeekDay系统变量确定。您还可以使用 week() 函数中的 first_week_day 参数更改将哪个月设置为第一个月。

如果您的应用程序使用中断周,则周数计数从 1 月 1 日开始,并在 FirstWeekDay 系统变量前一天结束,而不管发生了多少天。

如果您的应用程序使用的是连续的周,则第 1 周可以从上一年开始,也可以从 1 月的前几天开始。这取决于如何使用 FirstWeekDayReferenceDay 环境变量。

适用场景

当您希望按周比较聚合时,The week() 函数非常有用。例如,如果您想查看每周产品的总销售额,则可以使用它。当用户希望计算不一定使用应用程序的 BrokenWeeksFirstWeekDayReferenceDay 系统变量时,会选择函数 week() 而不是 weekname()

例如,如果您想查看每周产品的总销售额。

如果应用程序使用不间断的周,则第 1 周可能包含上一年 12 月的日期,也可能不包括本年 1 月的日期。如果应用程序使用的是中断周,则第 1 周可能少于 7 天。

区域设置

除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。有关详细信息,请参阅修改应用程序和脚本的区域设置

应用程序中的默认区域设置基于用户配置文件。这些区域格式设置与 Qlik Cloud 用户界面中显示的语言无关。Qlik Cloud 将以与您使用的浏览器相同的语言显示。

如果你是应用程序创建者,你可以为自己创建的应用程序设置默认区域。有关更多信息,请参阅设置 Qlik Cloud 分析 中创建应用程序和脚本所用的首选区域设置

以下示例假设

Set DateFormat= 'MM/DD/YYYY'; Set FirstWeekDay=0; Set BrokenWeeks=0; Set ReferenceDay=4;
函数示例
示例 结果

week('12/28/2021')

返回 52。

week(44614) 返回 8,因为这是 2022 年 2 月 22 日的序列号。
week('01/03/2021') 返回 53。
week('01/03/2021',6) 返回 1。

示例 1 – 默认系统变量

示例 2 – first_week_day

示例 3 – unbroken_weeks

示例 4 – reference_day

示例 5 – 图表对象示例

示例 6 – 场景

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!