我有這個疑問,那就是一直給我一些問題,它看起來像這樣:如何計算兩個日期的持續時間?
UPDATE servicecontracts
SET planned_duration = (to_char(due_date) - to_char(start_date) + 1)
,actual_duration =''
,progress = NULL
WHERE servicecontractsid = '263'
經過一番研究,我設法弄清楚這個查詢試圖做的,它只是試圖找到計劃的持續時間,通過減去到期日期和開始日期。爲什麼,這是試圖通過減去字符串來做到這一點,我不知道。另外,to_char
函數需要第二個參數。
所以,無論如何,現在我需要找到planned_duration
,但我該怎麼做。根據Postgresql文檔,to_char
函數沒有返回整數的選項,如果將其設置爲返回文本,然後如果嘗試使用顯式強制轉換將該字符串轉換爲整數(如::integer
),則會出錯因爲一個整數在那裏不能有冒號。
那麼,有沒有辦法讓to_char
返回一個以某種方式表示日期的整數,然後減去這兩個值? 如果不是,我該怎麼做才能做到這一點?
但是你不能像這樣將間隔轉換爲int。看我的文章/手冊。 –
哈哈,哦,我,我不知道這是如此簡單,謝謝。 – zermy
@ErwinBrandstetter - 你介意解釋爲什麼?我剛剛測試'select('2011-10-04':: date - '2011-08-04':: date):: int'正確返回了'61' –