gpt4 book ai didi

java - ResultSetMetaData.getColumnTypeName 返回 UNKNOWN

转载 作者:行者123 更新时间:2023-11-29 03:24:58 30 4
gpt4 key购买 nike

我有一个查询,其 getColumnTypeName 返回为 UNKNOWN但是当 getColumnType 被调用时它返回有效结果 92 TIME

我已经从 here 验证过了

            Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database...");
con= DriverManager.getConnection("jdbc:mysql://localhost/test","root","1234");
System.out.println("Creating statement...");
stmt = con.createStatement();
rs = stmt.executeQuery("select case when id>0 then last_day(date) else makedate(2015,1) end as date from emp.tabDate");
ResultSetMetaData rsmd=rs.getMetaData();
System.out.println(rsmd.getColumnTypeName(1));//returns UNKNOWN
System.out.println(rsmd.getColumnType(1));//returns 92

有什么方法可以获得有效的列类型

最佳答案

根据关于 java.sql.Types 常量的 Java 文档,值 92 表示 java.sql.TIME .

您的 sql 语句包含表达式,派生结果必须是 92 类型,即 java.sql.TIME。如果正确,则尝试将表达式结果 CASTTIME 并查看结果。

CAST 示例:

select cast(
case when id>0
then last_day(date)
else makedate(2015,1)
end as time ) as expr_res
from emp.tabDate

另请查看有关 getColumnTypeName(int) 的文档.它说,

If the column type is a user-defined type, then a fully-qualified type name is returned.

关于java - ResultSetMetaData.getColumnTypeName 返回 UNKNOWN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37983551/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com