Timestampdiff(hour,STR_TO_DATE(start_date, '%Y-%m-%d %H:%i:%s'),
STR_TO_DATE(target_date, '%Y-%m-%d %H:%i:%s')) as duration hours
我尝试使用字符串格式的开始日期和目标日期来获取持续时间。 需要将其转换为日期格式,需要为持续时间(以小时为单位)和持续时间(以天为单位)创建新列......这里持续时间意味着开始日期和目标日期之间的差异。在 presto SQL 中。
此外,在 Presto 中,您应该能够从另一个更大的时间戳中减去时间戳,并获得间隔文字:
WITH
-- some input ...
indata(start_ts,target_ts) AS (
SELECT TIMESTAMP '2024-03-04 08:00:00',TIMESTAMP '2024-03-06 09:00:00'
UNION ALL SELECT TIMESTAMP '2024-03-05 10:00:00',TIMESTAMP '2024-03-06 11:00:00'
)
SELECT
start_ts
, target_ts
, target_ts - start_ts AS duration
FROM indata;
开始_ts | 目标_ts | 持续时间 |
---|---|---|
2024-03-04 08:00:00 | 2024-03-06 09:00:00 | 2 01:00:00.000000 |
2024-03-05 10:00:00 | 2024-03-06 11:00:00 | 1 01:00:00.000000 |