2013-12-18 79 views
1

我正在使用java的ResultSetMetaData.getColumnTypeName()方法來查找動態構造查詢的結果集數據類型。但對於下面的查詢如何使用ResultSet對象獲取實際的數據類型?

選擇ADDDATE( '2013年12月10日',10)// MySQL查詢

它返回 「字符」。爲什麼如此?我期待日期。

請專家幫忙。

感謝

+0

您可以更新問題與實際獲得列類型的代碼? – Pieter

+0

public static void main(String[] args) throws Exception { Connection cx = getConnection(); Statement st = cx.createStatement(); \t String sql="Select Adddate('2013-12-10',10)"; ResultSet rs = st.executeQuery(sql); ResultSetMetaData rsMetaData = rs.getMetaData(); String type = rsMetaData.getColumnTypeName(1); System.out.println("Data Type: "+type); } @peter –

回答

0

你可以嘗試將結果轉換爲DATE:

SELECT CAST(ADDDATE('2013-12-10',10) as DATE); 

我覺得ADDDATE行爲就像DATE_ADD,在這種情況下返回字符串: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add

+0

如果我將實際日期數據類型列作爲參數傳遞(Say Adddate(Salesdate,10)),它會返回「Date」,但如果我傳遞實際日期值('2013-12-10'), 「Char」。查詢是在不同的系統中動態生成的,我沒有任何官方權限修改查詢,如果沒有修改查詢,有沒有什麼辦法可以找到上面查詢返回類型是「Date」的數據類型? –

+0

否,沒有其他辦法,因爲返回的類型確實是* Char *。 – spektom

相關問題