获取特定日期时间之间的所有数据

时间:2012-04-18 04:37:17

标签: oracle oracle11g

我正在从远程oracle数据库读取数据,只读访问权限。我想在一些时间框架之间查询所有数据。我其实想在午夜和当前时间之间进行查询。所以我正在使用的查询:

TO_DATE(to_char(sysdate, 'MM-dd-yyyy')||'00:00:00','MM-dd-yyyy HH24:MI:SS' ) 
AND 
TO_DATE(to_char(sysdate, 'MM-dd-yyyy HH24:MI:SS'),'MM-dd-yyyy HH24:MI:SS' ) 

但查询

 select TO_DATE(to_char(sysdate, 'MM-dd-yyyy HH24:MI:SS'),'MM-dd-yyyy HH24:MI:SS' ) from dual

仅返回 18-APR-12 而不是时间。我怎么也有时间?

我正在跑步:

ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';

但我不想每次都以任何其他方式运行此问题来解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

你所看到的并不是真正存在的东西 Oracle将日期作为重新编号的数字保存,并在查询时查看它的方式取决于您的NLS参数。
你没有看到时间的事实并不意味着没有时间。

至于你的查询,我会做这样的事情:

... BETWEEN trunc(sysdate) AND sysdate

我认为将Date转换为字符串然后返回具有相同格式的日期没有用...