我正在嘗試編寫一個識別任何日期格式並將其轉換爲單日期時間格式的plsql存儲過程'mm/dd/yyyy hh:mi:ss'
。我該怎麼做。我嘗試使用案例陳述,但有這麼多的日期組合,它不可能爲所有人編寫案例陳述。 例如:27-Oct-1967
,October 27 1967 11:15:45
,1967-OCT-27
等 如何將所有這些轉換爲單一格式。 謝謝。在PLSQL中識別日期格式
1
A
回答
0
也許這可以幫助你:
CREATE TABLE temp_date
AS
SELECT '1967-OCT-27' some_date
FROM dual
UNION
SELECT '27-Oct-1967' FROM dual
UNION
SELECT 'October 27 1967 11:15:45' FROM dual
/
Declare
CURSOR i_cur IS
Select some_date
From temp_date;
--
v_date1 Varchar2(30);
v_date2 Varchar2(30);
v_date3 Varchar2(30);
v_char Varchar2(30);
v_cnt Number:= 0;
Begin
For i_rec IN i_cur
Loop
v_cnt:= v_cnt + 1;
Begin
v_date1:= to_char(to_date(i_rec.some_date), 'MM/DD/YYYY hh24:mi:ss');
dbms_output.put_line(v_cnt||'.'||chr(9)||v_date1);
EXCEPTION
When Others Then
Begin
v_date2:= to_char(to_date(i_rec.some_date, 'MM/DD/YYYY hh24:mi:ss'), 'MM/DD/YYYY hh24:mi:ss');
dbms_output.put_line(v_cnt||'.'||chr(9)||v_date2);
EXCEPTION
When Others Then
Begin
v_date3:= to_char(to_date(i_rec.some_date, 'YYYY-MON-DD'), 'MM/DD/YYYY hh24:mi:ss');
dbms_output.put_line(v_cnt||'.'||chr(9)||v_date3);
EXCEPTION
When Others Then
-- Insert into Exceptions table (or any temp table) then convert... --
v_char:= i_rec.some_date;
dbms_output.put_line(v_cnt||'. '||chr(9)||i_rec.some_date||' : '||v_char);
End;
End;
End;
End Loop;
End;
/
1. 10/27/1967 00:00:00
2. 10/27/1967 00:00:00
3. 10/27/1967 11:15:45
+0
不客氣!總是樂於幫助! – Art
1
簡單to_char()
會做,
select to_char(yourDateField,'mm/dd/yyyy hh:mi:ss') from dual;
0
的將是格式化日期到您需要的格式,最希望的方式。然後做任何你需要的計算。
否則,你將不得不寫很大數量的select case
s來定義格式。並不是說它沒有意義,因爲日期可以有很多不同的格式......如提到Mat
。而且Date
是一個可以被你的system
影響的組件。使用給你可能甚至不知道如果此輸入是作爲一個字符串或實際日期To_Date()
轉換日期輸入到所需的格式:
你可以試試下面。所以你可能需要一些驗證,以確保它是一個適當的日期。
SELECT TO_DATE(mydate,'mm/dd/yyyy hh:mi:ss') FROM Dual;
+0
感謝bonCodigo! – Orion
相關問題
- 1. 識別日期格式
- 2. 識別日期格式
- 3. TryParseExact到SQL日期格式識別
- 4. jInstagram無法識別的日期格式
- 5. 如何在windows dir命令中識別日期的格式?
- 6. 日期時間格式 - 一個數字日不被識別
- 7. 識別客戶端機器中的日期格式
- 8. 如何識別perl中給定日期的格式
- 9. 在保存json之前,spring roo不能識別日期格式
- 10. Excel日期識別
- 11. 模式匹配來識別日期格式
- 12. Yii2,ExportMenu:如何格式化日期,Excel會自動將其識別爲日期?
- 13. 字符串不被識別爲日期時間格式asp.net?
- 14. MVC 4日期格式化無法識別輸入掩碼
- 15. 保證被Excel識別的日期格式
- 16. Oracle時間戳記 - 未識別日期格式
- 17. JavaScript的解析會識別什麼字符串日期格式?
- 18. 警告:oci_execute():ORA-01821:日期格式無法識別
- 19. 如何使javascript/d3識別日期格式
- 20. 字符串未被識別爲有效日期時間格式
- 21. 使Excel識別從PHP發送的日期格式
- 22. 使Excel識別自定義日期/時間格式
- 23. Jira Rest API:無法識別的結束日期格式
- 24. 使用VBA更改爲日期格式時Excel不識別年
- 25. 錯誤ORA-01821 「的日期格式無法識別」
- 26. CDate識別澳大利亞日期格式?
- 27. NSDateFormatter無法識別日期
- 28. Excel無法識別日期
- 29. Excel無法識別日期
- 30. 任何人都可以在SQLite中識別這種日期/時間格式嗎?
如果你仔細想想,你會發現你根本無法。如果你把'2013/02/01'作爲輸入,會怎樣?那是1月2日還是2月1日? – Mat