[英]Convert month number to month name from two tables
如果有以下记录,如何将月份编号转换为月份名称:
例如。
select date from tableClient;
17.01.07
18.02.08
18.03.08
18.04.08
18.05.08
18.06.08
18.07.08
18.08.08
预期结果是:
17.January.07
18.February.08
18.March.08
18.April.08
......
如何仅从该记录转换MM?
PS。 我必须编写一个查询,其中存在两个或三个条件,例如。
select id, firstName, lastName, date from tableClient, tableActivity
where tableClient.id = tableActivity.id and tableActivity.status= 'YES'
AND tableActiviy.type = 'SMS';
条件:日期必须为:eg格式。 03年1月1日
您必须将to_char()
函数与trim()
函数一起使用,以消除月份名称后的多余空格:
select trim(to_char(sysdate, 'dd.Month')) || '.' || to_char(sysdate,'yy') from dual;
以您的示例为例:
select id, firstName, lastName, trim(to_char(date, 'dd.Month')) || '.' || to_char(date,'yy')
from tableClient, tableActivity
where tableClient.id = tableActivity.id and tableActivity.status= 'YES'
AND tableActiviy.type = 'SMS';
将TO_CHAR与FMMONTH
一起使用以所需的格式 显示日期。
从文档中 ,
格式化模型修饰符
在TO_CHAR函数的格式模型中使用的FM和FX修改器控制空白填充和精确格式检查。
修饰符可以在格式模型中多次出现。 在这种情况下,每次后续出现都会切换修饰符的效果。 对于第一次出现的模型部分,启用其效果,然后对于第二次出现的部分禁用其效果,然后为第三次出现的部分重新启用,依此类推。
FM填充模式。 Oracle使用尾随空白字符和前导零将格式元素填充为恒定宽度。 宽度等于相关格式模型的最大元素的显示宽度:
例如,
SQL> SELECT to_char(SYSDATE, 'DD-FMMONTH-YY') FROM DUAL;
TO_CHAR(SYSDATE
---------------
09-MARCH-16
SQL> SELECT to_char(to_date('17.01.07','dd.mm.yy'), 'DD-fmMONTH-fmYY') FROM DUAL;
TO_CHAR(TO_DATE
---------------
17-JANUARY-07
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.