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

week - 脚本和图表函数

此函数用于返回根据 ISO 8601 表示周数的整数。周数根据标准数字解释通过表达式的日期解释进行计算。

语法:  

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

week() 函数的示例图,带中断周

图表显示了 week 函数如何在一年的第一个月内,应用默认的中断周系统来分解日期。

周数计数从 1 月 1 日开始(这是因为 Qlik Sense 默认设置为使用中断周)。第一周结束于 FirstWeekDay 系统变量的前一天,无论该周发生了多少天。FirstWeekDay 系统变量可以在 week() 函数中被 first_week_day 参数取代。

week() 函数示例图,周数不间断,并且 ReferenceDay=0

图表显示了 week 函数如何在一年的第一个月内,不应用中断周系统来分解日期。

week() 函数还提供了通过 broken_weeks 参数指定是使用中断周还是不中断周的功能。如果使用中断周功能,则第 1 周必须包含 ReferenceDay 系统变量定义的 1 月份的特定天数。因此,第 1 周可能在 12 月开始,或者第 52 或 53 周可能持续到1月。最后,reference_day 参数允许函数重写 ReferenceDay 系统变量。

weekname() 函数不同,week() 函数也不返回年份值。这允许跨年进行周比较的汇总。

此函数中可以使用四个参数。

这是作为时间戳或解析时间戳的表达式进行评估以转换的日期,例如 '2012-10-12'。

如果不指定 first_week_day,则变量 FirstWeekDay 的值将用作一周的第一天。

如果要使用其他天作为一周的第一天,请将 first_week_day 设置为:

  • 0,表示周一
  • 1,表示周二
  • 2,表示周三
  • 3,表示周四
  • 4,表示周五
  • 5,表示周六
  • 6,表示周日

此函数返回的整数现在将使用您使用 first_week_day 设置的一周的第一天。

FirstWeekDay

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

默认情况下,Qlik Sense 函数使用连续的周。这意味着:

  • 在某些年份中,第 1 周在 12 月开始,而在其他年份中,第 52 或 53 周延续到 1 月。
  • 在 1 月中,第 1 周始终至少有 4 天。

替代方法是使用不连续的周。

  • 第 52 或 53 周不延续到 1 月。
  • 第 1 周在 1 月 1 日开始,因此在大部分情况下不是完整的一周。

可以使用以下值:

  • 0(表示使用连续周)
  • 1(表示使用不连续周)

BrokenWeeks

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

以下值可用于设置不同参考日:

  • 1(表示 1 月 1 日)
  • 2(表示 2 月 1 日)
  • 3(表示 3 月 1 日)
  • 4(表示 4 月 1 日)
  • 5(表示 5 月 1 日)
  • 6(表示 6 月 1 日)
  • 7(表示 7 月 1 日)

ReferenceDay

适用场景

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

此外,当您希望跨多年进行比较时,会选择 week() 函数。通过使用 week() 函数,用户可以创建自己的变量组合,以便在使用函数时在实例中使用。

这些维度可以在加载脚本中创建,方法是使用函数在主日历表中创建字段,也可以直接在图表中用作计算维度。

函数示例
示例 结果

week( '10/12/2012')

返回 41。

week( '35648') 返回 32,因为 35648 = 08/06/1997。
week('10/12/2012', 0, 1) 返回 42。

区域设置

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

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

示例 1 – 默认系统变量

示例 2 – first_week_day

示例 3 – unbroken_weeks

示例 4 – reference_day

示例 5 – 图表对象示例

示例 6 – 场景

本页面有帮助吗?

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