您好我的查询有问题我想按两个日期时间条件获取值:
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 :(得分: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
,请使用此<:p>
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
答案 1 :(得分: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;
答案 2 :(得分: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)