【发布时间】:2011-07-21 06:37:13
【问题描述】:
在 Oracle 11g 上进行 SQL 查询,该查询返回表中 +/- 15 分钟范围内是否存在具有特定 ID 和状态的记录的计数。
现在我希望通过添加类似AND TIMESTAMP < trunc(sysdate) 的条件来忽略当前日期。
但是,对于今天存在记录的情况,我希望忽略查询'2010-07-20 19:15:11' >= TO_CHAR(TIMESTAMP - (1/1440*15), 'YYYY-MM-DD HH24:MI:SS')
AND '2010-07-20 19:15:11' <= (TO_CHAR(TIMESTAMP + (1/1440*15), 'YYYY-MM-DD HH24:MI:SS'))中的日期比较检查@
SELECT count(1) AS COUNT
FROM MASTER_ONE
WHERE ID='123' AND STATUS= 'ACTIVE'
AND '2010-07-20 19:15:11' >= TO_CHAR(TIMESTAMP - (1/1440*15), 'YYYY-MM-DD HH24:MI:SS')
AND '2010-07-20 19:15:11' <= (TO_CHAR(TIMESTAMP + (1/1440*15), 'YYYY-MM-DD HH24:MI:SS'))
UNION ALL
SELECT count(1) AS COUNT
FROM MASTER_TWO
WHERE ID='321' AND STATUS= 'ACTIVE'
AND '2010-07-20 19:15:11' >= TO_CHAR(TIMESTAMP - (1/1440*15), 'YYYY-MM-DD HH24:MI:SS')
AND '2010-07-20 19:15:11' <= (TO_CHAR(TIMESTAMP + (1/1440*15), 'YYYY-MM-DD HH24:MI:SS'))
我该怎么做?
【问题讨论】:
-
我不完全理解你的问题。您的时间戳列是 DATE 列?在哪些情况下,您需要忽略比较? sysdate 条件在哪里?
-
是的 - 时间戳列是日期列。如果是今天,我想忽略输入日期应在时间戳列日期的 +-15 分钟内的比较。
标签: sql timestamp oracle11g set-operations