帆软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
分享
二维码
打赏
海报
帆软BI关于时间的处理
业务需求 业务分析报表中有个字段“理论对接海外仓发货时间”要求等于“当下时间+40min”。 结论 TODATE(DATETONUMBER(now())+40*60*1000) 知识点剖析 使用 TODATE……
<<上一篇
下一篇>>