日期时间添加时oracle sql的编号无效

日期时间添加时oracle sql的编号无效,sql,oracle,Sql,Oracle,我相信这个表中的某些行中有一些错误数据。当我尝试这样的事情时,我得到了无效的号码。。。其他表不会引起问题 有什么方法可以防止查询失败吗 where to_char(t1.create_date) between to_char(t2.create_date - INTERVAL '10' MINUTE) and to_char(t2.create_date + INTERVAL '10' MINUTE) 你可以这样做: where t1.create_date between (t2.cre

我相信这个表中的某些行中有一些错误数据。当我尝试这样的事情时,我得到了无效的号码。。。其他表不会引起问题

有什么方法可以防止查询失败吗

where to_char(t1.create_date) 
between to_char(t2.create_date - INTERVAL '10' MINUTE) and
to_char(t2.create_date + INTERVAL '10' MINUTE)

你可以这样做:

where t1.create_date
between (t2.create_date - 10/1440) and (t2.create_date + 10/1440)

删除所有的
to_char
s,它可能会工作!我要再试一次,查询的运行时间相当长。实际上,在我添加to_字符之前,出现了无效数字错误。那是在我将分钟数从+0.0x改为内部“10”分钟之前。祈求好运?您是在将字符串隐式或显式转换为select列表中的数字,还是连接,还是where子句中的其他位置?你是如何确定引发异常的是间隔计算的?不,只是这个。这实际上是一个已经建立的查询,但由于业务流程的更改,我不得不进行修改。因此,我很有信心这就是select/where语句。这是较大查询中的子查询。。。。。哇!当我输入这个时,我才意识到子查询现在返回一个varchar,而我以前使用的是一个数字。。。嗯。。。谢谢我将再试一次。您也可以编写
10*间隔“1”分钟
间隔不会导致问题。OP在一篇评论中提到,他们在更改为Interval之前使用了
+0.x
,这与您真正做的是一样的。这似乎与问题中显示的代码无关。