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

weekname - 脚本和图表函数

此函数用于返回一个值,显示带有与包含 date 的周的第一天的第一毫秒时间戳对应的基本数值对应的年份和周数。

语法:  

WeekName(date[, period_no [, first_week_day [, broken_weeks [, reference_day]]]])

weekname() 函数确定日期属于哪一周,并返回该周的周数和年份。一周的第一天由 FirstWeekDay系统变量确定。但是,您可以使用 weekname() 函数中的 first_week_day 参数更改将哪个月设置为第一个月。

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

北美的应用程序开发人员经常在脚本中加入 Set BrokenWeeks=1;,对应于中断周。欧洲的应用程序开发人员经常在脚本中加入 Set BrokenWeeks=0;,对应于非中断周。

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

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

Weekend 函数示例
日期 ISO 周名称 US 周名称
2020 年 12 月 26 日星期六 2020/52 2020/52
2020 年 12 月 27 日星期日 2020/52 2020/53
2020 年 12 月 28 日星期一 2020/53 2020/53
2020 年 12 月 29 日星期二 2020/53 2020/53
2020 年 12 月 30 日星期三 2020/53 2020/53
2020 年 12 月 31 日星期四 2020/53 2020/53
2021 年 1 月 1 日星期五 2020/53 2021/01
2021 年 1 月 2 日周六 2020/53 2021/01
2021 年 1 月 3 日星期日 2020/53 2021/02
2021 年 1 月 4 日星期一 2021/01 2021/02
2021 年 1 月 5 日星期二 2021/01 2021/02

当您希望按周比较聚合时,weekname() 函数非常有用。

例如,如果您想查看每周产品的总销售额。要保持与应用程序中 BrokenWeeks 环境变量的一致性,请使用 weekname() 而不是 lunarweekname()。如果应用程序使用不间断的周,则第 1 周可能包含上一年 12 月的日期,也可能不包括本年 1 月的日期。如果应用程序使用的是中断周,则第 1 周可能少于 7 天。

返回数据类型:

参数
参数 说明
timestamp 要评估的日期或时间戳。
period_no shift 为整数,其中值 0 表示该星期包含 date。shift 为负数,表示前几星期,正数表示随后的几星期。
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

区域设置

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

应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典,则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。

以下示例假设:

Set FirstWeekDay=0; Set BrokenWeeks=0; Set ReferenceDay=4;
函数示例
示例 结果
weekname('01/12/2013') 返回 2013/02。
weekname('01/12/2013', -1) Returns 2013/01.
weekname('01/12/2013', 0, 1) 返回 2013/02。

示例 1 – 没有其他参数的日期

示例 2 – period_no

示例 3 – first_week_day

示例 4 – 图表对象

示例 5 – 场景

本页面有帮助吗?

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