我有一個接受兩個日期的SQL存儲過程,但是當我在打開的查詢中發送它們時,由於某些原因,Oracle不喜歡日期格式。SQL存儲過程轉換日期參數
如何使用存儲過程中的dd-mm-yyyy
將日期格式更改爲YYYY-MM-DD
,然後再使用它發送。
e.g SET @startdate = CONVERT
我有一個接受兩個日期的SQL存儲過程,但是當我在打開的查詢中發送它們時,由於某些原因,Oracle不喜歡日期格式。SQL存儲過程轉換日期參數
如何使用存儲過程中的dd-mm-yyyy
將日期格式更改爲YYYY-MM-DD
,然後再使用它發送。
e.g SET @startdate = CONVERT
使用TO_DATE function爲一個字符串值轉換爲Oracle日期數據類型。
接受格式爲YYYY-MM-DD日期字符串:
v_start_date DATE := TO_DATE(v_date_string, 'YYYY-MM-DD');
接受格式爲DD-MM-YYYY日期字符串:
v_start_date DATE := TO_DATE(v_date_string, 'DD-MM-YYYY');
您可以使用TO_CHAR
Oracle的功能。
/*retrieve from query*/
select TO_CHAR(reg_date,'YYYY-MM-DD') REGDATE from Users_TBL
/*Assign to variable*/
regDate := TO_CHAR(reg_date,'YYYY-MM-DD');
如果Oracle不接受這種格式,這對現有的DATE值不是問題。 – 2010-10-07 01:55:21
TO_DATE功能不適用於「YYYY-MM-DD」格式。這就是爲什麼嘗試使用「TO_CHAR」而不是「TO_DATE」。 – ppshein 2010-10-07 02:03:48
「'YYYY-MM-DD'」對於TO_DATE和TO_CHAR都是完美的。這取決於你在日期和字符串之間轉換的方向。 – 2010-10-07 04:12:24