巧做日期扩展
需求
任意输入两个日期,直接扩展出两个日期之间的日期。
如:
在润乾报表中,日期是无法直接用函数来扩展的。
那么要实现类似的效果,就需要搭配其他的函数来实现了。
实现思路
表达式写法如图:
设置两个参数,@arg1,@arg2,格式为日期型。
先计算两个日期的间隔天数,此处用 interval() 函数。
A3: =interval(@arg1,@arg2)
获取间隔天数后,使用 to 函数来做扩展操作。
B4: =to(0,A3)// 需要从 0 开始。
之后使用 elapse 获取和起始日期间隔多少天的数据,
C4: =elapse(@arg1,B4)
最终结果如图所示:
函数说明:
interval()
函数说明:
计算两个日期时间型数据的间隔
语法:
interval (datetimeExp1,datetimeExp2)
参数说明:
datetimeExp1 日期或标准日期格式的字符串
datetimeExp2 日期或标准日期格式的字符串
如:yyyy-MM-dd HH🇲🇲ss,yyyy-MM-dd,HH🇲🇲ss
返回值:
整数
选项:
@y 计算两个日期时间型数据相差几年
@q 计算两个日期时间型数据相差几季度
@m 计算两个日期时间型数据相差几月
@s 计算两个日期时间型数据相差几秒
@ms 计算两个日期时间型数据相差几毫秒
@r 计算两个日期时间型数据间隔,返回实数
缺省为计算两个日期时间型数据相差几天
@w 计算两个日期时间型数据相差几周
@7 计算两个日期时间型数据之间的周日数量,按照左开右闭区间计算
@1 计算两个日期时间型数据之间的周一数量,按照左开右闭区间计算
elapse()
函数说明:
计算相差某个时间的新日期数据
语法:
elapse (dateExp, n)
参数说明:
dateExp 给定的起始日期表达式,其结果必须为日期或标准日期格式的字符串
n 整数表达式,需要求得相差n天/年/月的新日期,负数表示n天/年/月前的新日期
备注:
算出相差n天/ n月/ n年的新的日期数据dateExp
取得指定日期在去年的同月同日,若无同月同日,则返回去年同月最后一天
返回值:
日期时间
选项:
@y 计算与指定日期相差n年的新日期数据
@q 计算与指定日期相差n季度的新日期数据
@m 计算与指定日期相差n月的新日期数据
@e 指定日期是月底时计算后的新日期数据不调整为月底,缺省将把新日期数据调整成月底,与@yqm配合使用
@s 计算与指定日期相差n秒的新的日期时间数据
@ms 计算与指定日期相差n毫秒的新的日期时间数据
无选项缺省时表示算出给定日期n天后的新日期数据