2014-05-01 55 views
-2

嗨,我有我的查詢的麻煩Oracle查詢幫助:關於日期時間

select * 
from cns_concerto_projects 
where SST_CREATION_DATE> TO_DATE('02/27/2010 16:07:07', 'mm/dd/yyyy HH24:MM:SS') 
AND SST_MODIFIED_DATE > TO_DATE('03/26/2010 11:42:07', 'mm/dd/yyyy HH24:MM:SS') < sysdate 

能否請您協助解決此問題。

非常感謝。

+0

問題是什麼? – GolezTrol

回答

0

你可以按以下方式使用它:

select * from cns_concerto_projects 
where SST_CREATION_DATE > TO_DATE('02/27/2010 16:07:07', 'mm/dd/yyyy HH24:MM:SS') 
AND 
(SST_MODIFIED_DATE > TO_DATE('03/26/2010 11:42:07', 'mm/dd/yyyy HH24:MM:SS') And SST_MODIFIED_DATE < sysdate) 
+0

非常感謝您的幫助! – Yotam707

1

問題是您在where的最後一行。

如果您想搜索範圍,則需要使用between

因此,不是這樣的:

SST_MODIFIED_DATE > TO_DATE('03/26/2010 11:42:07', 'mm/dd/yyyy HH24:MM:SS') < sysdate 

使用此:

select * 
from cns_concerto_projects 
where SST_CREATION_DATE > TO_DATE('02/27/2010 16:07:07', 'mm/dd/yyyy HH24:MI:SS') 
AND SST_MODIFIED_DATE between TO_DATE('03/26/2010 11:42:07', 'mm/dd/yyyy HH24:MI:SS') and sysdate 

而且,你必須使用mi幾分鐘,而不是mm

如果你想刪除between使用這樣的:

select * 
from cns_concerto_projects 
where SST_CREATION_DATE > TO_DATE('02/27/2010 16:07:07', 'mm/dd/yyyy HH24:MI:SS') 
AND SST_MODIFIED_DATE >= TO_DATE('03/26/2010 11:42:07', 'mm/dd/yyyy HH24:MI:SS') 
AND SST_MODIFIED_DATE <= sysdate 
+0

仍然不正確。看看to_date函數的第二個參數 – cha

+0

在日期時間字段之間使用通常是一個壞主意。減1 1. –

+0

因爲理解包含的內容而引起的混淆,這是一個壞主意。如果它是<= b <= c或 cha

0

如果可以保證SST_MODIFIED_DATE將大於SST_CREATION_DATE始終,那麼你可以跳過第一個條件,如下:

select * 
from cns_concerto_projects 
where SST_MODIFIED_DATE BETWEEN TO_DATE('03/26/2010 11:42:07', 'mm/dd/yyyy HH24:MI:SS') AND sysdate; 

這裏的版本,而不使用BETWEEN:

select * 
from cns_concerto_projects 
where SST_MODIFIED_DATE >= TO_DATE('03/26/2010 11:42:07', 'mm/dd/yyyy HH24:MI:SS') 
AND SST_MODIFIED_DATE <= sysdate; 
+0

也許我會糾正自己我寫的日期不是一個範圍,而是一個兩個條件查詢日期 – Yotam707

+0

@ Yotam707你的兩個日期時間條件是什麼? –