如果有以下记录,如何将月号转换为月份名称:
例如。
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';
条件:日期必须采用以下形式:例如。 01.January.03
答案 0 :(得分: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';
答案 1 :(得分:0)
使用 TO_CHAR 与FMMONTH
一起显示 所需格式的日期。
格式化模型修饰符
FM和FX修饰符,用于TO_CHAR中的格式模型 功能,控制空白填充和精确格式检查。
修改器可以多次出现在格式模型中。在这样的 case,每次后续的事件都会切换修饰符的效果。 对其后的模型部分启用其效果 第一次出现,然后为其后面的部分禁用 第二,然后重新启用第三个之后的部分,等等 上。
FM Fill模式。 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
答案 2 :(得分:-1)