Postgresql
將 Varchar 轉換為區間
我有一個 Postgresql 列,它是一個 varchar,它正在保存一個看起來像
'2 years, 5 months'
or'3 months'
或'9 years, 0 months
’ 的字元串。我無法將列轉換為間隔,因為它會破壞一堆現有的功能,所以我想要做的是將該 varchar 轉換為 select 語句中的間隔。我不知道該怎麼做,我想我首先需要將其格式化為時間戳,然後將其轉換為間隔?但無法找到有關此特定案例的任何資訊。感謝您的幫助!編輯 1:a_horse_with_no_name 的解決方案有效,但我之前因為空行而遇到錯誤,所以我寫了一個這樣的案例來修復它
case when duration = '' then interval '0' else duration::interval end
如果這些值都遵循您顯示的語法,您可以簡單地將其轉換為一個間隔:
select '2 years, 5 months'::interval