观远 BI

动态时间宏

创建于 2022-10-27 / 最近更新于 2023-12-22 / 17847
字体: [默认] [大] [更大]

1. 动态时间宏概述

动态时间宏,即通过时间宏的控制,可以设置动态时间,满足用户在看数据与分析数据时,需要灵活设定日期,让日期可以自动变换的需求。在卡片标题、筛选器默认值、订阅预警、数据集创建等多处可以使用。

关于动态时间宏的具体使用案例,建议前往《时间宏使用》了解

2. 动态时间宏使用流程

2.1 在卡片编辑中,使用时间宏

在卡片标题中使用动态时间宏,使用方法如下:

a. 进入卡片编辑页面

b. 在卡片标题中添加3个花括号"{{{}}}"以及表征时间的关键词

登录体验案例Demo在卡片标题显示动态日期

时间宏关键字主要2种类型:日期类型和偏移类型。

a. 日期类型,比如今天、昨天等,常见用法如下:

关键词用法(不区分大小写)
today今天
yesterday昨天
tomorrow明天
first day of last month上个月第一天。
first day 可替换为 last day,表示最后一天;
last month 可替换为 this month、next month,表示本月、下月;
month 可替换为 year、quarter。
Monday last week上周的周一。
Monday 可替换为 Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday,分别代表周二到周日;
last week 可替换为 this week、next week,表示本周、下周。

b. 偏移类型,如2天前、两周前等,常见用法如下:

关键词用法(不区分大小写)
today - 1 days1天前。
Today 可替换为任意时间点类型关键词;
days 可替换为 weeks、months、years,分别表示1周前、1月前、1年前;
+ 可替换为 -;
数字可以任意替换。

将日期类型和偏移类型结合起来,就可以创建自定义的区间时间,比如最近7天:

根据分析场景的需要,最近7天也可以定义为从今天开始算:起始为 today -6 days,结束为 today。

登录体验案例Demo 自定义快捷日期区间

返回日期格式

1. 动态时间宏表达式一般返回日期类型,如 “2021-12-31“,不能精确到时分秒。

2. 若有需要,也可以对动态时间宏进行格式设置,比如返回年、月,只需在动态时间宏后面加“%”、“y”、“M”、“d”等格式化参数。

具体用法举例如下(以 today 是2021-12-31和2022-01-01为例):

参数含义

用法举例

返回值 
(以2021-12-31为例)
返回值
(以2022-01-01为例)
%y当前时间宏对应日期的年份(自然年)today %y20212022
%Y当前时间宏对应日期的年份(按年周算)today %Y20222022
%M当前时间宏对应日期的月份today %M121
%d当前时间宏对应日期在当月的第几天today %d311
%D当前时间宏对应日期在当年的第几天today %D3651
%e当前时间宏对应日期在当周的第几天(周日为第一天)today %e67
%E当前时间宏对应日期在当周的星期几today %E周五周六
%w当前时间宏对应日期在当年的第几周today %w11
%W当前时间宏对应日期在当月的第几周today %W51
%Q/q当前时间宏对应日期的季度today %q41

以上格式化参数也可组合使用,以2023年3月15日为例,如输入“{{{today %y年M月d日 E}}}”,可得到“2023年3月15日 周三”。重复的字母可以用来微调格式(例如在数字前面补零),以2023年3月15日为例,输入“{{{today %y-M}}}”,得到“2023-3”;输入“{{{today %yyyy-MM}}}”,得到“2023-03”。

注意事项

  • 小写w: %w 得到的当年周数,是以周日为一周第一天来计数,和国际常用的ISO week 周数计算方法不同。如果想要周一为一周的第一天,可以尝试通过 -1 days 进行修正,比如:{{{yesterday -1 days %w}}}。

  • 大写的Y:%Y代表的是Week year,当前日期所在周的年份,且只要本周跨年,那么这周就算入下一年,这个和国际常用的ISO week year也是不同的。如果需要的是自然年周,需要使用小写y。

  • 基于以上两点,跨年周的展示和ISO week差距较大,请谨慎使用。例如,2021-12-31、2022-01-01这2天, {{{today %YYYY年第w周}}} 显示为“2022年第1周”,卡片里拖到维度栏的周(即ISO week)实际为“2021年第52周”;2022-12-31(周六) ,{{{today %YYYY年第w周}}} 显示为“2022年第53周”,卡片里实际为“2022年第52周”。类似这种情况通过 -1 days 无法进行修正。

  • 以上格式化参数仅支持返回中文和数字格式的日期,不支持返回英文格式的日期(例如 April 1,2023)。

登录体验案例Demo设置选择筛选器的日期格式

2.2 在数据集创建过程中,使用时间宏

创建数据集的过程中,如图所示,点击时间宏参数按钮,即可快速在SQL输入框中添加时间宏参数。已经预置的参数包含:昨天、今天、上周一、上周日、上月第一天、上月最后一天。

登录体验案例Demo增量更新数据

2.3 在设置“订阅”时,使用时间宏

设置“订阅”的时候,同样支持时间宏,不管是发送到邮件,还是推送到钉钉/企业微信,都可以用时间宏的方式,让系统自动每天更新日期。如图所示:

1.jpg

2.4 在筛选器默认值设置中,使用时间宏

在进行动态查询与分析的过程中,需要设置筛选器,创建筛选器时,可以自定义时间宏。使用方法如下:

a. 创建筛选器;

b. 类型选择中,选择“日期”;

c. 属性配置环节中,“默认值”可以点击勾选“自定义时间宏”,输入时间宏。

登录体验案例Demo设置日期筛选器的默认值

3. 动态时间宏使用案例

关于动态时间宏的具体使用案例,建议前往《时间宏使用》了解

50 人点赞过