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

6
我想把日期转换成其他格式。 下面是一个例子:04/03/10 09:00:50.000000000 AM 转为 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 - "格式代码出现两次"
2个回答

11
  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;

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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接