2015-12-01 50 views
0

我有一個輸入日期的自由文本列。具有不一致數據的日期格式Oracle SQL

有沒有一種方法可以強制輸出顯示相同?

例如有些人正在進入「15年2月12日」別人都進入'02/12/2015'

我?我怎樣才能輸出拿起日期,並將其更改爲洽格式?

不知道從哪裏開始。我曾嘗試「TO_CHAR」,但它說,「無效號碼」

+0

顯示您必須處理的確切數據的一些示例。 –

回答

0

其實我相信你想to_date()

select to_date('2/12/15', 'mm/dd/rrrr') 
from dual; 

的「RRRR」的一年將在今年格式正確。在這裏查看日期格式:https://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm

+0

謝謝:) ...這完美的作品 –

+0

@lee tyler - 只要確保你正在處理所有可能的日期格式。真正的解決方案是在數據輸入點驗證數據,使用戶首先正確輸入數據,然後輸入日期數據類型 - 如果這在控制範圍內。 –

0

這裏的最佳方法可能是使用接受字符串的PL/SQL函數,然後用不同的日期格式圖片嘗試一系列日期轉換('DD/MM/YY' ,「DD/MM/YYYY」等),直到找到一個不引發異常的東西。

如果有些人輸入DD/MM/YYYY和其他人輸入MM/DD/YYYY,這將不起作用,但在某些情況下會出現。