下面是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开发人员返回时间太?


当前回答

为了扩展之前的一些答案,我发现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”。

其他回答

为了扩展之前的一些答案,我发现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_DATE_FORMAT = 'date_format'

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

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

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

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

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

*添加在BEGIN语句之后

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

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

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

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;