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
。次のような出力が得られます:(出力には年の前に1つのスペースではなく2つのスペースが含まれます)
02<sup>nd</sup> November__2013 //underscore denotes space
また、日付にAugust
月が含まれる場合、出力には 1 つではなく 4 つのスペースが含まれます。
02<sup>nd</sup> August____2013 //underscore denotes space
任意の提案をいただければ幸いです。
私は1つの解決策を見つけましたが、上記のクエリが出力に余分な空白を追加している理由はまだわかりません.
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