【发布时间】:2019-06-03 10:44:14
【问题描述】:
我有一个格式化为 number(10) 数据类型的日期列。一些记录包含 -1 值(空)。我想将该列格式化为日期类型。使用TO_DATE 函数会返回此消息:
ORA-01841:(完整)年份必须介于 -4713 和 +9999 之间,并且不能为 0
这是由空值引起的吗?怎样才能避免呢?
TO_DATE(TEST.PRELIM_DATE,'YYYYMMDD')`
谢谢
【问题讨论】:
-
你能添加一些示例数据吗
-
负1不等于null
-
所以如果我有一个 -1,并且您希望将其视为 null,您可以先执行 case -1 然后为 null,然后使用 nvl() 函数将该 null 替换为类似1899 年 1 月 1 日的虚假日期或任何对您的申请有意义的日期 - 或将记录视为无效而拒绝
-
列中的值是什么?四位数的年份?
-
@LukStorms - 1 BC/BCE 之后是 1 AD/CE。没有零年。 en.wikipedia.org/wiki/Year_zero
标签: sql database string oracle date