inmonthstodate - 脚本和图表函数
此函数用于判断时间戳是否位于截止以及包括 base_date 的最后毫秒的某个月、两个月、季度、四个月期间或半年周期的一部分以内。另外,它也可以用于判断时间戳是否位于上一个或下一个时间周期以内。
语法:
InMonths (n_months, timestamp, base_date, period_no[, first_month_of_year ])
返回数据类型: 布尔值
参数 | 描述 |
---|---|
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 之间的值。 |
在 inmonthstodate() 函数中,base_date 充当它所属的特定年份段的终点。
例如,如果年份被分成三段,并且 base_date 是 5 月 15 日,那么 1 月初到 4 月底之间的任何时间戳都将返回布尔值 FALSE。5 月 1 日至 5 月 15 日之间的日期将返回 TRUE。今年剩余时间将返回 FALSE。
函数中提供了一年中的以下时段作为 n_month 参数。
期间 | 月数 |
---|---|
月 | 1 |
双月 | 2 |
季 | 3 |
四个月 | 4 |
半年 | 6 |
适用场景
inmonthstodate() 函数返回布尔值结果。通常,这种类型的函数用作 if expression 中的条件。通过使用 inmonthstodate() 函数,您可以选择要评估的期间。例如,提供一个输入变量,使用户可以识别在某个期间的某个月、季度或半年到某个日期生产的产品。
区域设置
除非另有规定,本主题中的示例使用以下日期格式:MM/DD/YYYY。日期格式已经在数据加载脚本中的 SET DateFormat 语句中指定。由于区域设置和其他因素,系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者,您可以更改加载脚本中的格式以匹配这些示例。
应用程序中的默认区域设置基于安装 Qlik Sense 的计算机或服务器的区域系统设置。如果您访问的 Qlik Sense 服务器设置为瑞典,则数据加载编辑器将使用瑞典地区设置的日期、时间和货币。这些区域格式设置与 Qlik Sense 用户界面中显示的语言无关。Qlik Sense 将以与您使用的浏览器相同的语言显示。
示例 | 结果 |
---|---|
inmonthstodate(4, '01/25/2013', '04/25/2013', 0) | 返回 True,因为 timestamp、01/25/2013 的值属于 01/01/2013 至 04/25/2013 结束的四个月期间内, base_date、04/25/2013 的值位于其内。 |
inmonthstodate(4, '04/26/2013', '04/25/2006', 0) | 返回 False,因为 04/26/2013 与上一示例不在同一期间内。 |
inmonthstodate(4, '09/25/2005', '02/01/2006', -1) | 返回 True, 因为 period_no、-1 的值将搜索周期向后移动四个月中的其中一个周期(n-months 的值),这可以使搜索周期介于01/09/2005 至 02/01/2006 之间。 |
inmonthstodate(4, '04/25/2006', '06/01/2006', 0, 3) | 返回 True,因为 first_month_of_year 的值设置为 3,这使得搜索周期介于 03/01/2006 至 06/01/2006 之内,而不是 05/01/2006 至 06/01/2006。 |