用于从时间戳中减去时间的Oracle SQL查询
我在oracle中构建查询时遇到问题。我有一个列为“DATE\u CREATE”的表,它有一种“TIMESTAMP”类型。一个值的示例是:用于从时间戳中减去时间的Oracle SQL查询,sql,oracle,time,timestamp,intervals,Sql,Oracle,Time,Timestamp,Intervals,我在oracle中构建查询时遇到问题。我有一个列为“DATE\u CREATE”的表,它有一种“TIMESTAMP”类型。一个值的示例是: 2012-10-20 05:43:47:001000 我想构建一个where子句,用于选择create column比15分钟前更新的行。现在我有一个这样的查询(它不返回任何行,但应该返回): 请帮助…尝试以下操作: SELECT DATE_CREATE,ID FROM TABLE WHERE DATE_CREATE >= CURRENT_TIMES
2012-10-20 05:43:47:001000
我想构建一个where子句,用于选择create column比15分钟前更新的行。现在我有一个这样的查询(它不返回任何行,但应该返回):
请帮助…尝试以下操作:
SELECT DATE_CREATE,ID
FROM TABLE
WHERE DATE_CREATE >= CURRENT_TIMESTAMP - NUMTODSINTERVAL(15, 'MINUTE')
抛出的错误是什么?您真的有一个名为
CREATE
的列吗?这是一个保留字,您需要引用它才能使用它“CREATE”
。一般来说,您应该避免使用保留字作为对象名称-正是出于这个原因不,我刚刚举了一个例子,它被称为“DATE_CREATE”。这个查询没有抛出错误(很抱歉,我弄错了),这个查询没有显示结果-实际上有-超过100个。。。如果尝试使用自定义日期,则会出现错误,例如:“WHERE DATE_CREATE>='2012-10-20 05:30:00:000000'-然后我得到这个:ORA-01861:literal不匹配格式stringThis-works!非常感谢。但我想知道为什么我的返回零行?区别在哪里?当我无法硬编码会议记录时,我更喜欢这个版本。传递像“15”这样的带引号的数字是痛苦的。
SELECT DATE_CREATE,ID
FROM TABLE
WHERE DATE_CREATE >= CURRENT_TIMESTAMP - NUMTODSINTERVAL(15, 'MINUTE')