【问题标题】:how to convert YYYYMMDD to DD-Mon-YYYY in oracle?如何在 oracle 中将 YYYYMMDD 转换为 DD-Mon-YYYY?
【发布时间】:2015-03-26 03:56:47
【问题描述】:

我正在尝试在 Oracle 中将日期从 YYYYMMDD 转换为 DD-Mon-YYYY,但 to_charto_Date 不起作用。可以请教吗?

select to_date(20150324,'DD-Mon-YY') from dual; select to_char(20150324,'DD-Mon-YY') from dual;

我收到一条错误消息:- ORA-01861: literal does not match format string

【问题讨论】:

标签: sql oracle oracle11g


【解决方案1】:

使用to_charto_date 的组合:

select to_char (to_date('20150324','YYYYMMDD'), 'DD-Mon-YY') from dual;

您的错误是,您使用了错误的日期模式。此外,建议添加'',尽管在这种情况下它可以在没有它们的情况下工作。

检查this Fiddle

【讨论】:

  • @Trinimon,错误不是由于缺少引号引起的,尽管它肯定会出错。但是发布的错误是由于格式掩码不匹配造成的。
  • 是的,你是对的:引号不见了,但没有'' 也能正常工作。虽然我认为有一个不推荐的隐式类型转换。我将在文本中添加一个关于格式的注释(在 Fiddle 中修复了它,但上面没有提到它)
  • 这样做的结果不是字符列而不是日期列吗?
  • @mLstudent33:日期列根本没有格式。格式是日期表示的问题。我上面的代码将表示“20150324”转换为表示“24-Mar-15”,中间使用转换日期。希望有帮助:)
猜你喜欢
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
相关资源
最近更新 更多