繁体   English   中英

将两个表中的月份编号转换为月份名称

[英]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_CHARFMMONTH一起使用以所需的格式 显示日期。

文档中

格式化模型修饰符

在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

对于SQL Server ,请尝试此操作,

SELECT FORMAT(date,'dd.MMMM.yy') AS date
FROM tableClient;

例,

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM