动态时间宏
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 days | 1天前。 Today 可替换为任意时间点类型关键词; days 可替换为 weeks、months、years,分别表示1周前、1月前、1年前; + 可替换为 -; 数字可以任意替换。 |
将日期类型和偏移类型结合起来,就可以创建自定义的区间时间,比如最近7天:
根据分析场景的需要,最近7天也可以定义为从今天开始算:起始为 today -6 days,结束为 today。
返回日期格式
1. 动态时间宏表达式一般返回日期类型,如 “2021-12-31“,不能精确到时分秒。
2. 若有需要,也可以对动态时间宏进行格式设置,比如返回年、月,只需在动态时间宏后面加“%”、“y”、“M”、“d”等格式化参数。
具体用法举例如下(以 today 是2021-12-31和2022-01-01为例):
参数 | 含义 | 用法举例 | 返回值 (以2021-12-31为例) | 返回值 (以2022-01-01为例) |
%y | 当前时间宏对应日期的年份(自然年) | today %y | 2021 | 2022 |
%Y | 当前时间宏对应日期的年份(按年周算) | today %Y | 2022 | 2022 |
%M | 当前时间宏对应日期的月份 | today %M | 12 | 1 |
%d | 当前时间宏对应日期在当月的第几天 | today %d | 31 | 1 |
%D | 当前时间宏对应日期在当年的第几天 | today %D | 365 | 1 |
%e | 当前时间宏对应日期在当周的第几天(周日为第一天) | today %e | 6 | 7 |
%E | 当前时间宏对应日期在当周的星期几 | today %E | 周五 | 周六 |
%w | 当前时间宏对应日期在当年的第几周 | today %w | 1 | 1 |
%W | 当前时间宏对应日期在当月的第几周 | today %W | 5 | 1 |
%Q/q | 当前时间宏对应日期的季度 | today %q | 4 | 1 |
以上格式化参数也可组合使用,以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输入框中添加时间宏参数。已经预置的参数包含:昨天、今天、上周一、上周日、上月第一天、上月最后一天。
2.3 在设置“订阅”时,使用时间宏
设置“订阅”的时候,同样支持时间宏,不管是发送到邮件,还是推送到钉钉/企业微信,都可以用时间宏的方式,让系统自动每天更新日期。如图所示:
2.4 在筛选器默认值设置中,使用时间宏
在进行动态查询与分析的过程中,需要设置筛选器,创建筛选器时,可以自定义时间宏。使用方法如下:
a. 创建筛选器;
b. 类型选择中,选择“日期”;
c. 属性配置环节中,“默认值”可以点击勾选“自定义时间宏”,输入时间宏。
登录体验案例Demo设置日期筛选器的默认值。
3. 动态时间宏使用案例
关于动态时间宏的具体使用案例,建议前往《时间宏使用》了解。