inmonths - 脚本和图表函数
此函数用于查找时间戳是否在作为基准日期的同一个月、两个月、季度、四个月期间或半年内。另外,它也可以用于判断时间戳是否位于上一个或下一个时间周期以内。
语法:
InMonths(n_months, timestamp, base_date, period_no [, first_month_of_year])
返回数据类型: 布尔值
在 Qlik Sense 中,布尔 true 值由 -1 表示,false 值由 0 表示。
inmonths() 函数根据提供的 n_months 参数将一年划分为若干段。然后,它确定评估的每个时间戳是否与 base_date参数属于同一段。但是,如果提供了 period_no 参数,该函数将确定时间戳是属于 base_date 的上一个时段还是下一个时段。
函数中提供了一年中的以下时段作为 n_month 参数。
期间 | 月数 |
---|---|
月 | 1 |
双月 | 2 |
季 | 3 |
四个月 | 4 |
半年 | 6 |
适用场景
inmonths() 函数返回布尔值结果。通常,这种类型的函数将用作 if expression 中的条件。通过使用 inmonths() 函数,您可以选择要评估的期间。例如,让用户识别在某一期间的月份、季度或半年内生产的产品。
返回数据类型: 布尔值
在 Qlik Sense 中,布尔 true 值由 -1 表示,false 值由 0 表示。
参数 | 说明 |
---|---|
n_months |
用于定义时段的月数。整数或解算为整数的表达式必须为下列之一:1(相当于 inmonth() 函数)、2(两个月)、3(相当于 inquarter()函数)、4(四个月期间)或 6(半年)。 |
timestamp | 想要用来与 base_date 进行比较的日期。 |
base_date | 日期用于计算周期的值。 |
period_no |
该周期可通过 period_no 偏移,其为整数,或解算为整数的表达式,其中值 0 表示该周期包含 base_date。period_no 为负数表示前几个时段,为正数则表示随后的几个时段。 |
first_month_of_year |
如果您不想从一月开始处理(财政)年,可在 first_month_of_year 中指定一个介于 2 和 12 之间的值。 |
可以使用以下值在 first_month_of_year 参数中设置一年中的第一个月:
月 | 值 |
---|---|
二月 | 2 |
三月 | 3 |
四月 | 4 |
五月 | 5 |
六月 | 6 |
七月 | 7 |
八月 | 8 |
九月 | 9 |
十月 | 10 |
十一月 | 11 |
十二月 | 12 |
区域设置
除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。有关详细信息,请参阅修改应用程序和脚本的区域设置。
应用程序中的默认区域设置基于用户配置文件。这些区域格式设置与 Qlik Cloud 用户界面中显示的语言无关。Qlik Cloud 将以与您使用的浏览器相同的语言显示。
如果你是应用程序创建者,你可以为自己创建的应用程序设置默认区域。有关更多信息,请参阅设置 Qlik Cloud 分析 中创建应用程序和脚本所用的首选区域设置。
示例 | 结果 |
---|---|
inmonths(4, '01/25/2013', '04/25/2013', 0) | 返回 TRUE。因为 时间戳,01/25/2013,在四个月内 01/01/2013 到 04/30/2013,其中 base_date 的值 04/25/2013 就位于其中。 |
inmonths(4, '05/25/2013', '04/25/2013', 0) | 返回 FALSE。因为 05/25/2013 与前一个示例不在同一时间段内。 |
inmonths(4, '11/25/2012', '02/01/2013', -1 ) | 返回 TRUE。因为 period_no 的值 -1 , 将搜索周期向后移动四个月(值为 n 个月),这表示搜索期间 09/01/2012 到 12/31/2012. |
inmonths(4, '05/25/2006', '03/01/2006', 0, 3) | 返回 TRUE。因为 first_month_of_year 设置为 3, 这就是搜索期间 03/01/2006 到 07/30/2006 而不是 01/01/2006 到 04/30/2006。 |