帆软BI关于时间的处理
业务需求
业务分析报表中有个字段“理论对接海外仓发货时间”要求等于“当下时间+40min”。
结论
TODATE(DATETONUMBER(now())+40*60*1000)
知识点剖析
使用 TODATE
与 DATETONUMBER
函数结合计算。
函数解释
NOW()
- 获取当前时间
- 如果系统时间是2024年4月22日16点14分38秒则NOW()等于2024-04-22 16:14:38。
DATETONUMBER(date)
- 返回自1970年1月1日00:00:00GMT经过的毫秒数。
date
只支持文本、日期。DATETONUMBER("2008-08-08")
等于1,218,124,800,000。
TODATE()
TODATE()
函数可以将各种日期形式的参数转换为日期类型。 它有五种参数的形式:- 参数是一个日期型的参数,那么直接将这个参数返回
TODATE(DATE(2007,12,12))
返回2007年12月12日组成的日期。
- 参数是以从1970年1月1日0时0分0秒开始的毫秒数,返回对应的时间。
TODATE(1023542354746)
返回2002年6月8日。
- 参数是日期格式的文本,那么返回这个文本对应的日期。
TODATE("2007/10/15")
返回2007年10月15日组成的日期TODATE("2007-6-8")
返回2007年6月8日组成的日期。
- 有两个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式。
TODATE("1/15/07","MM/dd/yy")
返回07年1月15日组成的日期。(MM必须是大写)。- 特别的,"yyyyMMdd"是用来解析形如“20081230”之类的日期格式的。比如TODATE("20110830","yyyyMMdd")返回2011年08月30日组成的日期。
- 有三个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式,第三个参数为解析日期的语言,如:zh(中文),en(英文)。如果EEE 和 MM/dd/yy 不一致, 以 MM/dd/yy 为主。
TODATE("星期一1/15/07","EEEMM/dd/yy","zh")
返回07年1月15日组成的日期,使用“zh(中文)”才能够正常解析“星期一”这个字符串。TODATE("星期三1/15/07","EEEMM/dd/yy","zh")
返回07年1月15日组成的日期,实际是星期一,而不是星期三。
- 参数是一个日期型的参数,那么直接将这个参数返回
获取指定日期后N个(时/分/秒)的日期值の示例
todate(DATETONUMBER(now())+ 2 * 3600 * 1000)
- 获取2小时后
- 将当前时间转换成毫秒级+N时*每时3600秒*每秒1000毫秒,最后通过todate函数转换成标准日期值
todate(DATETONUMBER(now())+ 2 * 60 * 1000)
- 获取2分钟后
- 将当前时间转换成毫秒级+N分*每分60秒*每秒1000毫秒,最后通过todate函数转换成标准日期值
todate(DATETONUMBER(now())+ 2 * 1000)
- 获取2秒后
- 将当前时间转换成毫秒级+N秒*每秒1000毫秒,最后通过todate函数转换成标准日期值
THE END
0
二维码
打赏
海报
帆软BI关于时间的处理
业务需求
业务分析报表中有个字段“理论对接海外仓发货时间”要求等于“当下时间+40min”。
结论
TODATE(DATETONUMBER(now())+40*60*1000)
知识点剖析
使用 TODATE……
共有 0 条评论