【问题标题】:Java spring BasicDataSource displaying query resultJava spring BasicDataSource 显示查询结果
【发布时间】:2016-01-31 14:52:23
【问题描述】:

我有一个带有 jdbc 配置集的 BasicDataSource 对象。如果我执行查询,例如:'select sysdate from dual',我会取回结果集:例如'30/01/2016 20:20:15'。但是,如果我要在 SQL Developer / Toad 中将此查询作为脚本运行,我会得到 ​​p>

"
SYSDATE  
---------
31-JAN-16
1 row selected.
"

我有兴趣获得相同的输出日志,就好像我将在 oracle 中作为脚本执行查询一样。这怎么可能实现?是否有一个库/函数可以用来以我需要的格式返回结果?

【问题讨论】:

    标签: java spring oracle jdbc spring-jdbc


    【解决方案1】:

    这只是表示问题,所以应该在应用层处理。

    仅使用 SQL,您可以使用 TO_CHAR 将日期格式化为具有特定格式的字符串:

    SELECT TO_CHAR(sysdate, 'DD-MON-YY') AS result
    FROM dual
    

    【讨论】:

      【解决方案2】:

      DATE 值在字符串形式中的转换由NLS_DATE_FORMAT 参数定义。

      它可以在会话中修改(使用 ALTER SESSION),如下所示

      select * from nls_session_parameters where parameter = 'NLS_DATE_FORMAT';
      
      PARAMETER                      VALUE       
      ------------------------------ ------------------ 
      NLS_DATE_FORMAT                DD.MM.RR HH24:MI:SS
      
      select sysdate from dual;
      
      SYSDATE         
      -----------------
      31.01.16 19:07:09
      
      alter session set  nls_date_format="dd/mm/yyyy hh24:mi:ss";
      
      select sysdate from dual;
      
      SYSDATE           
      -------------------
      31/01/2016 19:07:29
      

      另请注意,在 JDBC 中,您通常使用 getDate 获取 Date 对象,因此不会转换为字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-31
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        • 2017-10-09
        • 2018-01-19
        • 2019-01-26
        相关资源
        最近更新 更多