如何在Presto SQL中利用字符串格式的两个日期计算时长
Presto SQL 实现方案
要将字符串格式的start_date和target_date转换为日期格式,并计算两者的时长差值(小时、天为单位),可以使用Presto内置的DATE_PARSE和DATE_DIFF函数实现,具体代码如下:
SELECT -- 将字符串转为时间戳格式 DATE_PARSE(start_date, '%Y-%m-%d %H:%i:%s') AS start_timestamp, DATE_PARSE(target_date, '%Y-%m-%d %H:%i:%s') AS target_timestamp, -- 计算小时级时长差值 DATE_DIFF('hour', DATE_PARSE(start_date, '%Y-%m-%d %H:%i:%s'), DATE_PARSE(target_date, '%Y-%m-%d %H:%i:%s')) AS duration_hours, -- 计算天级时长差值 DATE_DIFF('day', DATE_PARSE(start_date, '%Y-%m-%d %H:%i:%s'), DATE_PARSE(target_date, '%Y-%m-%d %H:%i:%s')) AS duration_days FROM your_table_name;
关键函数说明
DATE_PARSE(string, format):将指定格式的字符串转换为Presto的时间戳类型,这里的格式%Y-%m-%d %H:%i:%s对应年-月-日 时:分:秒的字符串格式。DATE_DIFF(unit, timestamp1, timestamp2):计算两个时间戳之间的差值,unit参数指定差值的单位,支持hour、day等时间单位,返回结果为整数类型。
如果你的字符串日期格式和示例中的%Y-%m-%d %H:%i:%s不一致,只需调整DATE_PARSE的格式参数即可匹配实际格式。
内容的提问来源于stack exchange,提问作者KEERTHANA RAJKUMAR
相关产品推荐
相关产品推荐

