【发布时间】:2014-09-17 16:00:08
【问题描述】:
在数据库中,我试图提取晚于指定日期的信息。我应该事先注意到日期的格式很奇怪:YYYYMMDDHH24MISS## 其中## 是一个两个字母的字符串,它定义了对我的查询无用的内容。因此,我使用substr 来删除它们。
我的查询,下面,抛出以下错误,我无法找出原因:
[错误代码:920,SQL 状态:42000] ORA-00920:无效的关系 运营商
我的查询:
SELECT *
FROM table_name
WHERE to_date(substr(COLUMN_NAME,1,14), 'YYYYMMDDHH24MISS')) >=
to_date('MIN_DATE', 'YYYYMMDDHH24MISS')
我已检查以确保日期定义正确,而且确实如此。
我用于MIN_DATE 的示例是:20140101000000
【问题讨论】:
-
您的
)比(的多。 -
天哪..我在这个问题上被困了半个小时....非常感谢@JoachimIsaksson。但是,过多的括号不会有不同的错误吗??
-
我同意应该有,但遗憾的是,Oracle 的错误消息并不总是直截了当。
-
奇怪,我什至没有看括号。好吧,从现在开始,这将是我检查的第一件事。