【问题标题】:SQL Developer is returning only the date, not the time. How do I fix this?SQL Developer 只返回日期,而不是时间。我该如何解决?
【发布时间】: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 也返回时间?

【问题讨论】:

    标签: date datetime time oracle-sqldeveloper


    【解决方案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:SS 和DD-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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-07-29
                • 1970-01-01
                • 1970-01-01
                • 2015-06-16
                • 2020-02-07
                相关资源
                最近更新 更多