如何使用unix日期/时间从oracle中选择超过5分钟的记录

时间:2013-06-04 15:38:16

标签: sql oracle unix time

我正在尝试恢复距离当前时间超过5分钟的记录。这是我到目前为止所做的,但它似乎带回了所有记录,而不仅仅是超过5分钟的记录:

SELECT COUNT(DISTINCT "DOCUMENT_QUEUE"."DOCUMENT_NUMBER") as "Records" 
FROM   "MAGINUS"."DOCUMENT_QUEUE" "DOCUMENT_QUEUE"
WHERE  to_date('01-JAN-1970', 'dd-MON-yyyy HH:MI:SS') + (DOCUMENT_QUEUE.CREATION_DATE/86400) > sysdate - 38/1440
ORDER BY "DOCUMENT_QUEUE"."DOCUMENT_NUMBER"

3 个答案:

答案 0 :(得分:7)

使用interval literals

SELECT COUNT(DISTINCT "DOCUMENT_QUEUE"."DOCUMENT_NUMBER") as "Records" 
FROM   "MAGINUS"."DOCUMENT_QUEUE" "DOCUMENT_QUEUE"
WHERE  DOCUMENT_QUEUE.CREATION_DATE < SYSDATE - INTERVAL '5' MINUTE
ORDER BY "DOCUMENT_QUEUE"."DOCUMENT_NUMBER";

答案 1 :(得分:2)

这应该有效:

SELECT COUNT(DISTINCT "DOCUMENT_QUEUE"."DOCUMENT_NUMBER") as "Records" 
FROM   "MAGINUS"."DOCUMENT_QUEUE" "DOCUMENT_QUEUE"
WHERE  round(to_number(DOCUMENT_QUEUE.CREATION_DATE-sysdate)*1440) > 15
ORDER BY "DOCUMENT_QUEUE"."DOCUMENT_NUMBER"

答案 2 :(得分:-1)

使用NOW()(date_to_unix_ts(DOCUMENT_QUEUE.CREATION_DATE) - 86400 )来定义范围。