2016-01-31 93 views
0

我有一個配置了jdbc配置的BasicDataSource對象。如果我執行查詢,例如:'select sysdate from dual',我會找回結果集:例如。 '30/01/2016 20:20:15'。但是,如果我是運行此查詢,如SQL開發人員/蟾蜍的腳本,我會得到Java spring BasicDataSource顯示查詢結果

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

我有意獲得相同輸出的日誌,如果我將在oracle中被執行的查詢作爲一個腳本。這怎麼能實現?是否有我可以用來以我需要的格式返回結果的庫/函數?

回答

0

這只是介紹性的問題,所以應該在應用層處理。

使用SQL只可以使用TO_CHAR格式化日期字符串具體形式:

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

以字符串形式的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對象,所以沒有轉換爲字符串完成。