Điều bạn muốn, không thể thực hiện được. Nhưng có thể bạn đã hiểu nhầm time
gõ
:nó đại diện cho một mốc thời gian chính xác trong một ngày. Thêm hai (hoặc nhiều) lần cũng không có ý nghĩa gì. f.ex. '14:00' + '14:00' = '28:00'
(nhưng không có giờ thứ 28 trong một ngày).
Điều bạn có thể muốn, là interval
(đại diện cho khoảng thời gian; giờ, phút hoặc thậm chí năm). sum()
hỗ trợ interval
đối số.
Nếu bạn sử dụng các khoảng thời gian, nó chỉ đơn giản như vậy:
SELECT sum(interval_col) FROM my_table;
Mặc dù, nếu bạn tuân theo time
nhập (nhưng bạn không có lý do gì để làm điều đó), bạn có thể truyền nó đến interval
để tính toán với nó:
SELECT sum(time_col::interval) FROM my_table;
Nhưng một lần nữa, kết quả sẽ là interval
, bởi vì time
giá trị không được vượt quá 24 giờ trong một ngày.
Lưu ý :PostgreSQL thậm chí sẽ thực hiện việc truyền cho bạn, vì vậy sum(time_col)
cũng nên hoạt động, nhưng kết quả là interval
trong trường hợp này cũng vậy.