我有一列包含日期varchar2與不同的格式,如19.02.2013,29-03-2013,30/12/2013等。但最令人討厭的是20130713(2013年7月13日),我想將其轉換爲dd-mm-yyyy或dd-mon-yyyy。如何在Oracle中將yyyymmdd轉換爲dd-mm-yyyy?
0
A
回答
2
如果該列包含所有這些各種格式,則需要處理每一種格式。假設你的問題包括全部已知格式,那麼你有幾個選項。
您可以使用to_char/to_date。這很危險,因爲如果源數據不是有效的日期,你會得到一個SQL錯誤(當然,獲取錯誤可能比呈現錯誤數據更好)。
或者您可以根據格式簡單地重新排列字符串中的字符。這實現起來有點簡單,並且不在乎分隔符是什麼。
方法1:
case when substr(tempdt,3,1)='.'
then to_char(to_date(tempdt,'dd.mm.yyyy'),'dd-mm-yyyy')
when substr(tempdt,3,1)='-'
then tempdt
when length(tempdt)=8
then to_char(to_date(tempdt,'yyyymmdd'),'dd-mm-yyyy')
when substr(tempdt,3,1)='/'
then to_char(to_date(tempdt,'dd/mm/yyyy'),'dd-mm-yyyy')
方法2:
case when length(tempdt)=8
then substr(tempdt,7,2) || '-' || substr(tempdt,5,2) || '-' || substr(tempdt,1,4)
when length(tempdt)=10
then substr(tempdt,1,2) || '-' || substr(tempdt,4,2) || '-' || substr(tempdt,7,4)
end
+0
謝謝,方法2幫助我解決了類似的問題! – bawpie
8
轉換爲日期,然後格式字符:
select to_char(to_date('20130713', 'yyyymmdd'), 'dd MON yyyy') from dual;
給13 JUL 2013
。
3
關於數據類型的註釋雖然爲true,但對於解決當前問題並沒有多大幫助。 to_date和to_char的組合可能會起作用。
update yourtable
set yourfield = to_char(to_date(yourfield, 'yyyymmdd'), 'dd-mm-yyyy')
where length(yourfield) = 8
and yourfield not like '%-%'
and yourfield not like '%.%'
相關問題
- 1. 如何將數據轉換爲「ddmmyyyy hh:mm:ss」?
- 2. 將日期格式轉換爲ddmmyyyy
- 3. VBA將ddmmyyyy文本轉換爲日期
- 4. 將YYYYMMDD轉換爲Unix中的時間
- 5. 如何在PL/SQL中將日數(第331天)轉換爲yyyymmdd?
- 6. 如何將yyyymmdd轉換爲mm-dd-yyyy在dataweave中
- 7. 如何在PHP中將YYYYMMDD轉換爲ISO 8601?
- 8. 如何將文本框值ddmmyyyy轉換爲dd-mm-yyyy?
- 9. 如何將yyyymmdd轉換爲sql server 2012中的Julian日期
- 10. 將yyyymmdd轉換爲月份格式
- 11. 將Pandas DateTimeIndex轉換爲YYYYMMDD整數?
- 12. 將YYYYMMDD轉換爲Excel dd/mm/yy
- 13. 將yyyymmdd轉換爲dd MMM yyyy
- 14. 將YYYYMMDD轉換爲mm/dd/yyyy格式
- 15. 如何爲varchar「DDMMYYYY HH:MM:SS」轉換成DATETIME在SQL Server
- 16. 如何將yyyymmdd hh:mm:ss轉換爲hh:mm am/pm?
- 17. SQL Server:如何將浮動yyyymmdd轉換爲日期yyyy-mm-dd?
- 18. 如何將數字1轉換爲日期值20150101(yyyyMMdd)?
- 19. convert varchar(ddmmyyyy)轉換爲日期格式
- 20. 在MDX中將「YYYYMMDD」格式字符串轉換爲日期?
- 21. 在sybase中將yyyymmdd轉換爲yyyy/mm/dd
- 22. 在R中將YYYYMMDD轉換爲mm/dd/yyyy格式
- 23. 在PHP中將日期從YYYYMMDD轉換爲DD/MM/YYYY格式
- 24. 在pyspark中將yyyymmdd轉換爲MM-dd-yyyy格式
- 25. 使用dateutil.parser轉換DDMMYYYY
- 26. 如何將Oracle DateTime轉換爲日期
- 27. 如何將xml轉換爲xsd in oracle
- 28. 在Oracle中將YYWW轉換爲日期
- 29. 在oracle中將CLOB轉換爲varchar2
- 30. 將YYYYMMDD字符串轉換爲有效日期轉到
這應該教你絕不會存儲在日期VARCHAR列。 –
實際上'yyyyMMdd'在某些方面比其他方式更好,因爲它自然排序......但是,您應該使用適當的數據類型開始。 –