我正在从具有只读访问权限的远程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)
但我不想每次都以任何其他方式运行这个来克服这个问题?
你所看到的并不是真正存在的东西.
Oracle将日期保留为数字重新编号,并在查询时查看它的方式取决于您的NLS参数.
你没有看到时间的事实并不意味着没有时间.
至于你的查询,我会做这样的事情:
... BETWEEN trunc(sysdate) AND sysdate
Run Code Online (Sandbox Code Playgroud)
我认为将Date转换为字符串然后返回具有相同格式的Date没有用处...
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |