Quick BI 数据准备中的数据清洗功能所支持的时间函数

更新时间:

问题描述

在数据清洗中使用SQL时间函数”datediff(end, start, 'mi')“会报错,并且获取不到时间之差。

问题原因

在数据准备的数据清洗功能中只能使用Spark SQL 函数。

解决方案

Spark SQL所有时间函数:

  1. current_date:返回当前日期。
  2. current_timestamp:返回当前时间戳。
  3. date_add(date, int):给定日期加上指定的天数,返回新的日期。
  4. date_sub(date, int):给定日期减去指定的天数,返回新的日期。
  5. datediff(endDate, startDate):计算两个日期之间的天数差。
  6. from_unixtime(int):将 Unix 时间戳转换为字符串表示的时间。
  7. year(date):提取给定日期的年份。
  8. month(date):提取给定日期的月份。
  9. day(date):提取给定日期的日。
  10. hour(timestamp):提取给定时间戳的小时。
  11. minute(timestamp):提取给定时间戳的分钟。
  12. second(timestamp):提取给定时间戳的秒。
  13. to_date(dateStr):将字符串转换为日期格式。
  14. to_timestamp(timestampStr):将字符串转换为时间戳格式。
  15. unix_timestamp():返回当前时间的 Unix 时间戳。

Spark SQL的时间函数中也没有能够返回分钟的时间函数,”datediff(endDate, startDate)“函数为计算两个日期之间的天数差。

换一种思路:

使用俩时间戳进行减法计算俩时间之差,然后除以60获取到分钟数”unix_timestamp(时间字段) - unix_timestamp(时间字段)) / 60 “。

适用于

  • Quick BI