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

kin*_*jou 2 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' ) 
Run Code Online (Sandbox Code Playgroud)

但查询

 select TO_DATE(to_char(sysdate, 'MM-dd-yyyy HH24:MI:SS'),'MM-dd-yyyy HH24:MI:SS' ) from dual
Run Code Online (Sandbox Code Playgroud)

目前只返回18-APR-12而不是时间.我怎么也有时间?

我在跑步 :

ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';
Run Code Online (Sandbox Code Playgroud)

但我不想每次都以任何其他方式运行这个来克服这个问题?

A.B*_*ade 5

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

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

... BETWEEN trunc(sysdate) AND sysdate
Run Code Online (Sandbox Code Playgroud)

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