【发布时间】:2020-11-03 22:44:39
【问题描述】:
我遇到了奇怪的情况,当 Oracle 不允许我按 DATE 值选择行时,数据库中有。
有一些表带有TRANS_DATE 列(DATE 数据类型)。
我正在尝试将数据从该 Oracle 导入 MS Sql Server,但导入失败并显示“DATE 列的值错误”。
经过一番调查,我发现源表中有一个奇怪的值'0002-11-30'。
SELECT a
FROM (
SELECT DISTINCT trunc(TRANS_DATE) a
FROM OWS.DOC
)
ORDER BY a asc
好的,我尝试按该值从 Oracle 中选择行,但出现错误:
SELECT *
FROM OWS.DOC
WHERE TRANS_DATE='0002-11-30 00:00:00'
错误:
SQL Error [1847] [22008]: ORA-01847: day of month must be between 1 and last day of month
我也已经尝试过这个选择:
SELECT *
FROM OWS.DOC
WHERE TRANS_DATE=to_date('0002-11-30', 'yyyy-mon-dd')
它返回一个错误
SQL Error [1843] [22008]: ORA-01843: not a valid month
我应该如何构造 PL-SQL 查询来选择这些数据?
【问题讨论】:
标签: oracle