Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ResultSet对象获取实际数据类型?_Java_Mysql_Datetime_Resultset - Fatal编程技术网

Java 如何使用ResultSet对象获取实际数据类型?

Java 如何使用ResultSet对象获取实际数据类型?,java,mysql,datetime,resultset,Java,Mysql,Datetime,Resultset,我使用java的ResultSetMetaData.getColumnTypeName()方法查找动态构造查询的resultset数据类型。但是对于下面的查询 选择Adddate('2013-12-10',10)//MySQL查询 它返回“Char”。为什么会这样??我期待你的约会 请专家们帮忙 谢谢您可以尝试将结果转换为最新结果: SELECT CAST(ADDDATE('2013-12-10',10) as DATE); 我认为ADDDATE的行为与DATE\u ADD类似,在本例中返回字

我使用java的ResultSetMetaData.getColumnTypeName()方法查找动态构造查询的resultset数据类型。但是对于下面的查询

选择Adddate('2013-12-10',10)//MySQL查询

它返回“Char”。为什么会这样??我期待你的约会

请专家们帮忙


谢谢

您可以尝试将结果转换为最新结果:

SELECT CAST(ADDDATE('2013-12-10',10) as DATE);
我认为ADDDATE的行为与DATE\u ADD类似,在本例中返回字符串:

您能用实际获取列类型的代码更新您的问题吗?
publicstaticvoidmain(String[]args)抛出异常{Connection cx=getConnection();Statement st=cx.createStatement();String sql=“selectadddate('2013-12-10',10)”;ResultSet rs=st.executeQuery(sql);ResultSetMetaData rsMetaData=rs.getMetaData();String type=rsMetaData.getColumnTypeName(1);System.out.println(“数据类型:“+type”);}
@peterIf如果我将实际日期数据类型列作为参数传递(比如Adddate(Salesdate,10),它将返回“date”。但如果我传递实际日期值('2013-12-10'),则只返回“Char”。查询是在不同的系统中动态生成的。我没有修改查询的任何官方特权。如果不修改查询,是否有任何方法可以找到上面的查询返回类型是“日期”数据类型?没有,没有其他方法,因为返回的类型确实是字符。