SQL Developer只返回日期,而不是时间。我怎么解决这个问题?

下面是SQL developepr给我的,在结果窗口和当我导出:

CREATION_TIME
-------------------
27-SEP-12
27-SEP-12
27-SEP-12

下面是运行相同的query/db的另一个软件:

CREATION_TIME
-------------------
2012-09-27 14:44:46
2012-09-27 14:44:27
2012-09-27 14:43:53

我如何让SQL开发人员返回时间太?

281510 次浏览

你能试试这个吗?

进入“工具>首选项>数据库> NLS”,设置“日期格式”为“MM/DD/YYYY HH24:MI:SS”

这样你就能得到小时、分和秒。您看。

select
to_char(CREATION_TIME,'RRRR') year,
to_char(CREATION_TIME,'MM') MONTH,
to_char(CREATION_TIME,'DD') DAY,
to_char(CREATION_TIME,'HH:MM:SS') TIME,
sum(bytes) Bytes
from
v$datafile
group by
to_char(CREATION_TIME,'RRRR'),
to_char(CREATION_TIME,'MM'),
to_char(CREATION_TIME,'DD'),
to_char(CREATION_TIME,'HH:MM:SS')
ORDER BY 1, 2;

从工具>首选项>数据库> NLS参数设置日期格式为

DD-MON-RR HH: MI:党卫军

日期格式也可以设置使用以下查询:-

修改会话设置NLS_DATE_FORMAT = 'date_format'

例如:alter SESSION set NLS_DATE_FORMAT = 'DD-MM-YYYY HH24:MI:SS'

为了扩展之前的一些答案,我发现Oracle DATE对象与Oracle TIMESTAMP对象的行为不同。特别是,如果您将NLS_DATE_FORMAT设置为包含小数秒,则整个时间部分将被省略。

  • 对于DATE和TIMESTAMP,格式“YYYY-MM-DD HH24:MI:SS”可以正常工作
  • 格式“YYYY-MM-DD HH24:MI:SSXFF”只显示date的日期部分,对TIMESTAMP的工作与预期的一样

我个人倾向于将DATE设置为“YYYY-MM-DD HH24:MI:SS”,而将TIMESTAMP设置为“YYYY-MM-DD HH24:MI:SSXFF”。

这些答案都不适合我,首选项NLS配置选项或ALTER语句都不适合我。这是唯一适用于我的方法:

dbms_session.set_nls('nls_date_format','''DD-MM-YYYY HH24:MI:SS''');

*添加在BEGIN语句之后

我使用的是PL/SQL Developer v9.03.1641

希望这对某些人有所帮助!

我是这样发现的:

Oracle SQL Developer(左上角图标)> Preferences > Database > NLS 日期格式设置为MM/DD/YYYY HH24:MI:SS

enter image description here

< p > Tools>偏好比;数据库在NLS 在我的例子中,有&;XFF"在“日期格式”的几秒钟后;行。修正后的参数为“yyyy-mm-dd HH24:MI: ss”;