小小例题,问题多! |
今天新来的老大给出了道题,要把日期输出的格式变为dd'mm'yy,其中yy的年份要比当前的年份少11年,研究了半天,结果MM提供的做法如下: |
select to_char(sysdate,'dd')||''''||
to_char(sysdate,'mm')||''''||
to_number(to_char(sysdate,'rrrr')-1911) as "Date"
from dual;
(其中的1911是老大写的,我的想法是用MOD函数求余,后来想想我的想法很有可能会影响performace)
以上这题主要要注意两点:
1.ORACLE的数据类型转换附图,要注意的是ORACLE中number型的数据跟date型的数据不能直接进行转换.
2.ORACLE中在要在输入结果中显示单引号,要用两个单引号表示,就像上题所示.
今天为了这个问题还折腾了不少时间,看来不管做什么基本功都要扎实啊!
來看我的做法:
select to_char(sysdate,'dd')||''''||
to_char(sysdate,'mm')||''''||
to_number(to_char(sysdate - interval '11' year,'rr')) as "Date"
from dual;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29987/viewspace-51860/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29987/viewspace-51860/