我在Oracle 10g上的PL / SQL中有一个不符合我的想法的查询。我百分百肯定我做的事情很傻,所以我很抱歉..这就是:
我在表格中有一些数据如下:
然后我去查询但是使用了time元素,如下所示:
select * from dw_time
where createdtime > to_date('2012/04/12 03:06:00', 'yyyy/mm/dd hh24:mi:ss')
执行此操作时,我们会返回包含图像03:05 AM中行的记录。所以我认为这是to_date函数:
select to_date('2012/04/12 10:24:00', 'yyyy/mm/dd hh:mi:ss')
from dual;
现在我完全感到困惑,因为它清楚地知道这是一个时间。所以我再试一次:
select * from dw_time
where createdtime > to_date('2012/04/12 03:06:00', 'yyyy/mm/dd hh24:mi:ss')
正如您所看到的,它完全忽略了时间组件!在这一点上,我认为是时候向这里的大师们询问了!
非常感谢
麦克
答案 0 :(得分:1)
您的表'12 / 4/2012'是否可能意味着2012年12月4日,并且查询以MM / DD / YYYY格式输出?
答案 1 :(得分:0)
查看数据库输出日期格式 - 它的MM / DD / YYYY - 您可以在输出中看到它:
select to_date('2012/04/12 10:24:00', 'yyyy/mm/dd hh:mi:ss') from dual;
因此请将您的选择更改为:
select * from dw_time where createdtime > to_date('2012/12/04 03:06:00', 'yyyy/mm/dd hh24:mi:ss')
您可以通过此查询查看日期输出格式:
select * from nls_session_parameters where parameter = 'NLS_DATE_FORMAT';
您可以通过以下方式更改日期输出格式:
alter session set NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS';