postgresql是世界上功能最強大的開源資料庫,在國内得到了越來越多機構和開發者的青睐和應用。随着postgresql的應用越來越廣泛,oracle向postgresql資料庫的資料遷移需求也越來越多。資料庫之間資料遷移的時候,首先是遷移資料,然後就是sql、存儲過程、序列等程式中不同的資料庫中資料的使用方式的轉換。下面根據自己的了解和測試,寫了一些sql以及資料庫對象轉換方面的文章,不足之處,尚請多多指教。
add_months(date,integer) 是oracle的一個時間運算函數。傳回參數date日期的integer個月後的日期。是oracle日期運算的一個很基本的函數。
postgresql裡面沒有這個函數。可以使用interval資料類型的加減來模拟。傳回的是一個timestamp的值。也可以自己建立函數來實作它。
last_day(date)函數是oracle的一個取日期的月末日的函數。
postgresql中沒有對應的日期函數。可以自己使用interval來實作。也可以自己建立函數來實作。
months _between函數是oracle的一個判斷兩個日期之間有幾個月的間隔的函數。
postgresql中也沒有對應的函數,隻能自己通過函數實作。不過由于對于相差月份的算法不一樣,結果可能有些差異。下面給出一個例子。
extract是oracle用于從一個date、timestamp或者interval類型中截取到特定的部分所用的函數。oracle隻支援截取年、月、日、時、分、秒,時區時,時區分、時區等。
postgresql也支援該函數, 截取的東西比oracle的多一些,但是不支援時區時,時區分和時區的截取(文檔中說是支援的,但是我的實際測試中不支援)。