如何将日期格式更改为“YYYY / DD / MM”?

时间:2017-02-02 03:58:44

标签: sql oracle

我使用此查询中的(:weekno)获得了财政年度第一个月的第一个月和第一周的日期

select TO_CHAR(ADD_MONTHS((Select ((TRUNC (Trunc(sysdate,'yyyy')+( :weekno)*7,'IW'))+1) fdt from duaL),+3))
  from dual

输出得到:03-APR-17
但我想输出这种格式'YYYY / DD / MM'04 / 03/04

2 个答案:

答案 0 :(得分:1)

你正在使用双重两次。没有必要这样做。

使用to_char格式的yyyy/mm/dd获取2017/03/04

select
    to_char(
        add_months(
            trunc(
                trunc(sysdate,'YY') + :week_no * 7, 'IW'
            ) + 1, 3
        ), 'yyyy/mm/dd'
    ) dt
from dual;

使用to_char格式的dd/mm/yyyy获取04/03/2017

select
    to_char(
        add_months(
            trunc(
                trunc(sysdate,'YY') + :week_no * 7, 'IW'
            ) + 1, 3
        ), 'mm/dd/yyyy'
    ) dt
from dual;

答案 1 :(得分:0)

如果您需要日期值:

select to_date(TO_CHAR(ADD_MONTHS((Select ((TRUNC (Trunc(sysdate,'yyyy')+( :weekno)*7,'IW'))+1) fdt from duaL),+3)),'yyyy/mm/dd') from dual

如果需要字符串值:

select TO_CHAR(ADD_MONTHS((Select ((TRUNC (Trunc(sysdate,'yyyy')+( :weekno)*7,'IW'))+1) fdt from duaL),+3),'yyyy/mm/dd')from dual