【问题标题】:how to convert a string to a date format and then convert it back into a date in oracle如何将字符串转换为日期格式,然后在 oracle 中将其转换回日期
【发布时间】:2014-03-12 14:08:03
【问题描述】:

我需要将格式为 (YYYY-MM-DD HH24:MI:SS) 的字符串转换为日期格式 (DD-MON-RR)。在此之后,我必须再次将其转换回字符串格式(MM/DD/YYYY)。

我已经使用下面的查询完成了这项工作

SELECT to_char(to_date('string to be converted','YYYY-MM-DD HH24:MI:SS'),'MM/DD/YYYY') 
FROM table_name 

但我遇到了类似的错误

ORA-01841:(完整)年份必须介于 -4713 和 +9999 之间,并且不能为 0 01841. 00000 - “(完整)年份必须介于 -4713 和 +9999 之间,并且不能为 0” *原因:非法输入年份 *Action:在指定范围内输入年份

任何人都可以为此提出建议。

提前谢谢你

【问题讨论】:

  • 你永远不应该将日期存储为字符串的另一个很好的理由。
  • 请提供您用于字符串的示例输入。
  • 样本输入是'2014-03-18 00:00:00'

标签: oracle


【解决方案1】:

检查您的表值,因为如果它们尊重您的格式,您的查询就可以了。例如,

SELECT to_char(to_date('2014-03-12 15:19:33','YYYY-MM-DD HH24:MI:SS'),'MM/DD/YYYY')
FROM dual

按预期提供03/12/2014

编辑:我无法重现您的错误(取而代之的是 ORA-01861),所以我天真地尝试运行

SELECT to_char(to_date('string to be converted','YYYY-MM-DD HH24:MI:SS'),'MM/DD/YYYY')
FROM dual

我确实得到了和你一样的错误 ORA-01841:这是因为你试图转换 'string to be converted',这不尊重格式!您应该选择 Oracle 字段,例如 table_name.date_field

【讨论】:

  • 如果我单独执行此查询,我能够得到答案。但是,如果我要集成到主查询中,则会收到上述错误
  • 如果我单独执行此查询,我能够得到答案。但是,如果我要集成到主查询中,则会收到上述错误
猜你喜欢
  • 2011-12-14
  • 2015-04-27
  • 2016-12-21
  • 2022-01-10
  • 1970-01-01
  • 2013-12-28
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多