2014-05-01 54 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你的两个日期时间条件是什么? –