2015-12-21 73 views
0

环境:Oracle数据库甲骨文:问题与where子句日期查询

我有列名DateOfAct这是日期的表数据类型保存日期&时间(例如:2015年10月28日21 :21:10,2015年10月29日11时09分45秒)

我需要一天20-12-2015记录:从早上开始12:00:00到夜间23: 59:59

select * from my_table 
where DateOfAct >= to_date('20-12-2015 00:00:00' , 'dd-mm-yyyy 24HH:MI:SS') 
and DateOfAct <= to_date('20-12-2015 23:59:59', 'dd-mm-yyyy 24HH:MI:SS') 
+0

您能否定义您正在解决的具体问题? – istovatis

+1

究竟是什么问题?你有错误吗? – Mureinik

+0

尝试使用DateOfAct BETWEEN'20 -12-2015 00:00:00'AND '20 -12-2015 23:59:59' – fuzzy28

回答

0

不理解这里的任何问题..但你可以尝试使用之间。

select * 
from my_table 
where DateOfAct between to_date('20151220000000','YYYYMMDDHH24MISS') 
     and to_date('20151220235959','YYYYMMDDHH24MISS'); 
-2

查询可以改变像

select * from my_table where trunc(DateOfAct)='20-Dec-2015' 

说明:

功能trunc从日期时间移除一部分,让您不受时间仅比较日期值。

+0

非常感谢..已使用trunc函数 – needreebas

+0

为什么'trunc(DateOfAct)=' 20日 - 12月2015''?为什么比较一个日期和一个字符串,当你可以很容易地将字符串转换成一个日期 - 事实上,OP试图做(尽管有一个不正确的格式掩码)?我为此低估了。纠正它,我会扭转downvote。 – Boneist

1

下面的代码应该解决您的问题: 在日期的格式把'HH24',而不是'24HH'

select * from my_table 
where DateOfAct >= to_date('20-12-2015 00:00:00' , 'dd-mm-yyyy HH24:MI:SS') 
and DateOfAct <= to_date('20-12-2015 23:59:59', 'dd-mm-yyyy HH24:MI:SS') 
0

从早晨12:00:00开始至晚上23:59:59

在查询开始日期

to_date('20-12-2015 00:00:00' , 'dd-mm-yyyy 24HH:MI:SS') - 00:00(HH24:MI),如果你想要12:00(HH24:MI)是应to_date('20-12-2015 12:00:00' , 'dd-mm-yyyy HH24:MI:SS')

select * 
    from my_table 
where DateOfAct between to_date('20-12-2015 12:00:00', 'dd-mm-yyyy HH24:MI:SS') 
        and to_date('20-12-2015 23:59:59', 'dd-mm-yyyy HH24:MI:SS')