Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在月份名称后添加空格的查询_Sql_Oracle - Fatal编程技术网

Sql 在月份名称后添加空格的查询

Sql 在月份名称后添加空格的查询,sql,oracle,Sql,Oracle,我正在使用Oracle 10 我想以以下格式从数据库中选择日期: 02<sup>nd</sup> November 2013 若日期包含八月,则输出包含四个空格,若为一个空格,则输出包含四个空格 02<sup>nd</sup> August____2013 //underscore denotes space 2013年8月2日//下划线表示空格 如有任何建议,将不胜感激 我已经找到了一个解决方案,但我仍然不知道为什么上面的查询会在输出

我正在使用Oracle 10

我想以以下格式从数据库中选择日期:

02<sup>nd</sup> November 2013
若日期包含八月,则输出包含四个空格,若为一个空格,则输出包含四个空格

02<sup>nd</sup> August____2013    //underscore denotes space
2013年8月2日//下划线表示空格
如有任何建议,将不胜感激

我已经找到了一个解决方案,但我仍然不知道为什么上面的查询会在输出中添加额外的空格

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
选择
regexp\u替换(
替换(
替换(
替换(
替换(
截止日期(“2013年8月2日”、“年月日”和“年月日”)
,'nd','nd')
,‘st’,‘st’)
,“th',“th')
","八月","八月")
,“[:space:][[:space:][]*”,“”)
来自双重

最长月份的长度为9。因此,所有月份都在右侧用空格填充,以组成9个字符

可以指定用于修剪空间的格式模型

to_char(to_date('04-May-2013','dd-Mon-yyyy'),'ddth fmMonth yyyy')
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
to_char(to_date('04-May-2013','dd-Mon-yyyy'),'ddth fmMonth yyyy')