我正在使用 Oracle 10。
我想从数据库中选择日期格式:
02<sup>nd</sup> November 2013
查询得到上述结果:
select
replace(
replace(
replace(
replace(
to_char(to_date('02-Nov-2013','dd-Mon-yyyy'),'ddth Month yyyy')
,'nd','<sup>nd</sup>')
,'st','<sup>st</sup>')
,'th','<sup>th</sup>')
,'Augu<sup>st</sup>','August')
from dual
上面的查询执行得很好。但它在输出之前添加了更多空格year
,我得到的输出如下:(而不是一个空格,输出在一年之前包含两个空格)
02<sup>nd</sup> November__2013 //underscore denotes space
如果日期包含August
月份,则输出包含四个空格,而不是一个。
02<sup>nd</sup> August____2013 //underscore denotes space
任何建议将不胜感激。
我找到了一种解决方案,但我仍然不确定为什么上面的查询会在输出中添加额外的空格。
select
regexp_replace(
replace(
replace(
replace(
replace(
to_char(to_date('02-Aug-2013','dd-Mon-yyyy'),'ddth Month yyyy')
,'nd','<sup>nd</sup>')
,'st','<sup>st</sup>')
,'th','<sup>th</sup>')
,'Augu<sup>st</sup>','August')
,'[[:space:]][[:space:]]*',' ')
from dual