我正在嘗試編寫自己的timestampdiff(DAY,first_date,second_date)函數,它將與MySql tumestampdiff函數的工作方式相同。如何爲oracle編寫自己的timestampdiff函數
但我無法忍受什麼是第一個參數的數據類型,以便它可以接受日,月或年的關鍵工作字。
需要專家評論作爲什麼樣的數據類型是在函數參數?
其次,我可以在哪裏看到mysql內置函數的實現。
確定添加更加清晰:
我有一個查詢select * from application a where timestampdiff(DAY,a.created_date, CURRENT_TIMESTAMP(3)) >= 30;
我想上面查詢應該在Oracle和MySQL的運行。
希望你明白我的觀點。我想在oracle中編寫相同的函數,以便我不必進行任何代碼更改,並且它將受到兩個數據庫的支持。
現在在上面我無法確定如果我要寫函數應該是第一個參數類型。
感謝
你知道,你可以直接減去兩個時間戳?例如'first_date - second_date'?根據數據類型,它會給你一個'INTERVAL'(如果兩者都是'TIMESTAMP')或'NUMBER'(如果兩者都是'DATE's。 –
@a_horse_with_no_name,實際上減去2個日期並不會導致「常規」數字數據類型 - http://stackoverflow.com/a/9346340/1083652(就像一個附註) –
@ABCade:有趣的閱讀感謝。但對於只是「使用」的結果它仍然是一個整數(例如,JDBC驅動程序返回數據類型爲NUMBER的這樣一列) –