2013-03-01 4 views
15

Apparently, PostgreSQL không có DATEADD, bởi vì bạn chỉ có thể sử dụng các toán tử + hoặc -.Làm thế nào để thêm số giờ thay đổi vào một ngày trong PostgreSQL?

tôi cần phải thêm một số giờ để một ngày, mà được thực hiện như thế này:

date_field + interval '8.25 hour' 

Mà là tuyệt vời, nhưng tôi cần số giờ đến từ một lĩnh vực trong bảng. Sẽ là một cái gì đó như thế này:

date_field + interval start_time 'hour' 

Tôi không thể tìm thấy bất cứ nơi nào để làm điều này. Điều này thực sự là không thể?

Tôi không quan tâm đến việc hack hacks xấu như lấy giá trị trường và chia cho 3600, nhân với 86400. Dù tôi cần làm gì, nhưng tôi cũng chưa tìm được cách nào để thực hiện điều đó.

Trả lời

4

Tìm thấy câu trả lời, in another SO question:

date + interval '1' minute * FLOOR(start_time * 60) 

Hy vọng rằng sẽ giúp bất cứ ai

37

Vì bạn muốn thêm giờ, nó khá nên là:

SELECT date_field + interval '1h' * start_time 

start_time thể được bất kỳ giá trị số.

0

Người làm việc đối với tôi là

SELECT date_field + interval '1' HOUR * start_time 

start_time thể được bất kỳ giá trị số.