Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何查找输入值不合适的记录_Sql_Database_Oracle_Date - Fatal编程技术网

Sql 如何查找输入值不合适的记录

Sql 如何查找输入值不合适的记录,sql,database,oracle,date,Sql,Database,Oracle,Date,使用where子句对筛选出的大多数记录运行查询,我会得到一个结果 但在删除where子句后,出现以下错误: ORA-01847:月份的日期必须介于1和月份的最后一天之间 184700000-“月日必须介于1和月底之间 现在我想知道哪些记录在使用时具有不合适的输入值 nvl(to_date(trunc(vl.begin_date)),null) - nvl(to_date(trunc(v.end_date)),null) != 1 我搜索了null记录,但它们似乎不是问题所在 由于查询本身不是问

使用where子句对筛选出的大多数记录运行查询,我会得到一个结果

但在删除where子句后,出现以下错误:

ORA-01847:月份的日期必须介于1和月份的最后一天之间 184700000-“月日必须介于1和月底之间

现在我想知道哪些记录在使用时具有不合适的输入值

nvl(to_date(trunc(vl.begin_date)),null) - nvl(to_date(trunc(v.end_date)),null) != 1
我搜索了
null
记录,但它们似乎不是问题所在


由于查询本身不是问题,而是查找有问题的记录,所以我没有添加完整的查询。

您能提供示例数据吗?和数据类型吗?我假设日期不存储为日期,因为这是不可能的错误。@GordonLinoff,数据存储为时间戳。不能包含数据,因为我不知道是哪个records是有问题的。@AlexPoole Oracle Database 12c Standard Edition 12.1.0.2.0-64位生产PL/SQL 12.1.0.2.0-生产“CORE 12.1.0.2.0 Production”TNS for Linux:Version 12.1.0.2.0-生产NLSRTL Version 12.1.0.2.0-生产调用
to_date()
,对已经是日期的值调用(或时间戳)是错误的。它首先将时间戳转换为字符串,只是为了将该字符串转换回其开始的日期。请从语句中删除
to_date()
调用。@davejal-它们没有问题;不必要的转换产生的问题实际上并不存在。(嗯,您可能有无效数据,但不太可能;它更可能与您的NLS设置有关。出于兴趣,您的会话NLS\u DATE\u格式设置为什么?)