在我的出勤表中,加班以“ hh:mm”格式提及。它在数据库中的String列。 整月加班将作为一个条目输入。所以我的列数据如下
OVERTIME
'52:00'
'30:00'
'98:00'
'06:00'
现在如何获取“超时”列的SUM。
我尝试过SELECT SUM(OVERTIME::TIME) FROM ATTENDANCE.
,它给了我错误:
错误:日期/时间字段值超出范围:“ 52:00”
答案 0 :(得分:0)
假设值是HH:MM,则可以使用字符串操作:
select sum(left(overtime, 2)::numeric + right(overtime, 2)::numeric/60) as hours
请注意,这会将结果显示为十进制小时数。
如果您希望将值作为间隔,也可以这样做:
select sum( cast(overtime as interval) )
请注意,这会将结果显示为天,小时和分钟。