【问题标题】:date conversion from DD/MM/YYYY HH:MM:SS to YYYYMM从 DD/MM/YYYY HH:MM:SS 到 YYYYMM 的日期转换
【发布时间】:2014-11-21 07:34:42
【问题描述】:

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

下面是04/03/10 09:00:50.000000000 AMto YYYYMM的例子

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

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 - “格式代码出现两次”

【问题讨论】:

    标签: oracle date


    【解决方案1】:
    1. 分钟的格式代码是 MI,而不是 MM。 MM 是几个月。
    2. 您使用的是两位数年份。最好为此使用RR。最好使用 4 位数的年份。
    3. TO_DATE 不存储小数秒。您需要使用 TO_TIMESTAMP 并使用 FF 作为格式代码。

    所以,您的查询将是

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

    【讨论】:

      【解决方案2】:

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

      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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-14
        • 1970-01-01
        • 2020-03-07
        • 2016-11-06
        • 1970-01-01
        相关资源
        最近更新 更多