PostgreSQL处理时间段、时长转为秒、分、小时
在PostgreSQL中,可以使用EXTRACT
函数来从时间段(interval
)中提取小时、分钟和秒。如果你有一个时长字符串,比如'1 hour 30 minutes',可以先将其转换为interval
类型,然后再提取。
以下是将时间段转为秒、分和小时的例子:
-- 假设有一个时间段变量 @interval
SET @interval = '1 day 2 hours 30 minutes 45 seconds';
-- 转换为 interval 类型(如果是字符串)
-- SET @interval = '1 day 2:30:45'::interval;
-- 提取小时
SELECT EXTRACT(EPOCH FROM @interval) / 3600 AS hours;
-- 提取分钟(先转换为小时后乘以60)
SELECT EXTRACT(EPOCH FROM @interval) / 3600 / 24 AS minutes;
-- 提取秒
SELECT EXTRACT(EPOCH FROM @interval) AS seconds;
EPOCH
是EXTRACT
函数的一种用法,它将时间段转换为秒。这里的@interval
是一个示例变量,你可以根据实际情况替换为相应的列名或时间段常量。
如果你的时长是一个字符串,你可以使用类型转换将其转换为interval
类型:
SELECT '1 hour 30 minutes'::interval;
-- 结果类型为 interval
然后,你可以用上述方法提取小时、分钟和秒。
评论已关闭