2013-06-04 26 views
0

我试图从当前时间恢复比5分钟早的记录。以下是我迄今为止,但它似乎带回的所有记录不只是那些它们是超过5分钟以上:如何从oracle使用unix日期/时间选择超过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" 

回答

-1

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

+0

ANKIT - 这些都是MySQL的功能; Oracle不支持它们。 –

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" 
6

使用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"; 
+0

完美!如果我能给你一个吻..... –

相关问题