SQL Developer 只返回日期,而不是时间。我该如何解决?

Posted

技术标签:

【中文标题】SQL Developer 只返回日期,而不是时间。我该如何解决?【英文标题】:SQL Developer is returning only the date, not the time. How do I fix this? 【发布时间】:2012-09-19 15:39:31 【问题描述】:

以下是 SQL Developer 在结果窗口和导出时为我提供的信息:

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

这是运行相同查询/数据库的另一款软件给出的结果:

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

如何让 SQL Developer 也返回时间?

【问题讨论】:

【参考方案1】:

你可以试试这个吗?

转到工具> 首选项 > 数据库 > NLS 并将日期格式设置为 MM/DD/YYYY HH24:MI:SS

【讨论】:

德语版:Extra > Voreinstellungen > Datenbank > NLS 哇...这太美了。不敢相信我在 select 声明中进行了转换。 '非逻辑设置' :-) 不!它代表国家语言支持。它用于定义国家日期、数字、货币和语言设置。 注意:我需要重新连接数据库才能使此设置生效【参考方案2】:

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

改变会话设置 NLS_DATE_FORMAT = 'date_format'

例如: 改变会话设置 NLS_DATE_FORMAT = 'DD-MM-YYYY HH24:MI:SS'

【讨论】:

【参考方案3】:

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

格式“YYYY-MM-DD HH24:MI:SS”按预期工作,适用于 DATE 和 TIMESTAMP 格式“YYYY-MM-DD HH24:MI:SSXFF”仅显示 DATE 的日期部分,对 TIMESTAMP 正常工作

我个人的偏好是将 DATE 设置为“YYYY-MM-DD HH24:MI:SS”,并将 TIMESTAMP 设置为“YYYY-MM-DD HH24:MI:SSXFF”。

【讨论】:

谢谢,这对我很有帮助 - 我只是从时间戳复制格式,不明白为什么它不起作用。 是否有理由(除了标准)使用YYYY-MM-DD HH24:MI:SSDD-MM-YYYY HH24:MI:SS 我总是把年份放在第一位以避免混淆。在美国,典型的顺序是 MM-DD-YYYY。其他地方是 DD-MM-YYYY。麻烦的是,你不能在 1 到 12 天之间区分它们。所以我总是把年份放在首位。而且我从来没有遇到过任何将年放在首位的事情,然后再其次是月和日。它还可以像字符串一样干净地排序,这是一个方便的副作用。【参考方案4】:

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

DD-MON-RR HH:MI:SS

【讨论】:

【参考方案5】:

这将为您提供小时、分钟和秒。嘿presto。

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; 

【讨论】:

【参考方案6】:

这些答案都不适合我,不是 Preferences NLS 配置选项或 ALTER 语句。这是在我的案例中唯一有效的方法:

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

*添加在 BEGIN 语句之后

我正在使用 PL/SQL Developer v9.03.1641

希望这对某人有所帮助!

【讨论】:

【参考方案7】:

工具> 首选项 > 数据库 > NLS 在我的情况下,“日期格式”行中的秒后有“XFF”。将参数更正为“yyyy-mm-dd HH24:MI:SS”后出现时间。

【讨论】:

【参考方案8】:

我是这样找到的:

Oracle SQL Developer(左上角图标)> 首选项 > 数据库 > NLS 并将日期格式设置为 MM/DD/YYYY HH24:MI:SS

【讨论】:

以上是关于SQL Developer 只返回日期,而不是时间。我该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle sql developer 日期/月份数据提取查询和语法

使用 Apache Ant 而不是 Oracle SQL Developer 执行 SQL 时出错

C# SQL 在左连接中选择右表只返回唯一值,而不是每个值的一个实例

Visual Web Developer 2008 Express 想要 SQL Server 2005 而不是 2008?

在用户定义的函数中返回列名而不是值 SQL

在 Oracle SQL Developer 中使用内置 SSH 而不是先使用 PuTTY