Java是SQL Server数据类型的两倍

时间:2014-04-17 12:48:50

标签: java sql-server liquibase

我想从表中插入一些Java Double值(我正在使用SQL Server)。 如何使用Liquibase创建上述表格?更确切地说,该列应该是什么类型的?以下尝试无效。显然Float不够精确。

<column name="visitsAvg" type="FLOAT"/>

2 个答案:

答案 0 :(得分:1)

Liquibase将JDBC类型用于列。 JDBC / SQL类型FLOAT与SQL Server类型FLOAT不同。 JDBC类型FLOAT是32位单精度浮点。如果需要64位双精度(SQL Server中为DOUBLE),则应指定FLOAT(53)

可能liquibase将type="FLOAT"的请求转换为SQL Server中FLOAT(24)类型的列,这不足以存储具有完全精度的Java double

答案 1 :(得分:0)

问题是我得到的是NaN而不是数字。更准确地说,在我的代码中的某个时刻有一个除以0.因此,问题不是将Java Double转换为某种SQL类型,也不是将Liquibase转换为。我错误地认为问题可能存在于某处。