Quick BI 数据准备中的数据清洗功能所支持的时间函数
更新时间:
问题描述
在数据清洗中使用SQL时间函数”datediff(end, start, 'mi')“会报错,并且获取不到时间之差。
问题原因
在数据准备的数据清洗功能中只能使用Spark SQL 函数。
解决方案
Spark SQL所有时间函数:
-
current_date:返回当前日期。
-
current_timestamp:返回当前时间戳。
-
date_add(date, int):给定日期加上指定的天数,返回新的日期。
-
date_sub(date, int):给定日期减去指定的天数,返回新的日期。
-
datediff(endDate, startDate):计算两个日期之间的天数差。
-
from_unixtime(int):将 Unix 时间戳转换为字符串表示的时间。
-
year(date):提取给定日期的年份。
-
month(date):提取给定日期的月份。
-
day(date):提取给定日期的日。
-
hour(timestamp):提取给定时间戳的小时。
-
minute(timestamp):提取给定时间戳的分钟。
-
second(timestamp):提取给定时间戳的秒。
-
to_date(dateStr):将字符串转换为日期格式。
-
to_timestamp(timestampStr):将字符串转换为时间戳格式。
-
unix_timestamp():返回当前时间的 Unix 时间戳。
Spark SQL的时间函数中也没有能够返回分钟的时间函数,”datediff(endDate, startDate)“函数为计算两个日期之间的天数差。
换一种思路:
使用俩时间戳进行减法计算俩时间之差,然后除以60获取到分钟数”unix_timestamp(时间字段) - unix_timestamp(时间字段)) / 60 “。
适用于
- Quick BI
该文章对您有帮助吗?