从DD / MM / YYYY HH:MM:SS到YYYYMM的日期转换

时间:2014-11-21 07:34:42

标签: oracle date

我想将日期转换为其他格式。

以下是YYYYMM

的示例04/03/10 09:00:50.000000000 AM

我无法得到这个,下面是我用来转换的查询。

select to_char(to_date('04/03/10 09:00:50.000000000 AM','MM/DD/YYYY HH:MM:SS AM'),'YYYYMM') from table;

我得到如下例外

ORA-01810:格式代码出现两次 01810. 00000 - "格式代码出现两次"

2 个答案:

答案 0 :(得分:10)

  1. 分钟的格式代码是MI,而不是MM。 MM已经好几个月了。
  2. 您使用的是2位数的年份。最好为此使用RR。更好的是使用4位数年份。
  3. TO_DATE不存储小数秒。您需要使用TO_TIMESTAMP并使用FF作为格式代码。
  4. 因此,您的查询将是

    select to_char(to_timestamp('04/03/10 09:00:50.000000000 AM','MM/DD/RR HH:MI:SS.FF9 AM'),'YYYYMM') 
    from table;
    

答案 1 :(得分:0)

要实现目标,需要解决许多问题;) 最后我这样做了:

select to_char(
         to_timestamp('04/03/10 09:00:50.000000000 AM','MM/DD/YYYY HH:MI:SS.FF9 PM',
                      'nls_date_language = ENGLISH'),
                      'YYYYMM') from dual;