如何在sql server中存储1.4666667

时间:2010-09-09 11:40:00

标签: sql-server

我如何从sql server中的csv读取此行

广告,aixas,Aixàs,06,42.4833333,1.466666

当我这样做时我得到错误请告诉我这些值的类型以及将其添加到sql数据库表中的规则

5 个答案:

答案 0 :(得分:2)

任何浮点类型,但可能double precision作为准确性和存储之间的折衷。

float是通用浮点类型,您可以指定。的精度。

Data
Type | Range                                                     | Storage

float -1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308       Depends on the
                                                                   value of n

real  -3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38   4 Bytes

真实的同义词是float(24)。

双精度的同义词是float(53)。

Source

如果您想要更准确,则应使用decimal

答案 1 :(得分:2)

听起来您的错误可能是由于CSV文件中的脏数据,而不是数据类型的问题......

答案 2 :(得分:1)

如果没有更多信息,例如实际的错误消息,数据库架构以及插入方式,很难说。

我不是数据库接口方面经验丰富的专家,因此当遇到问题时,如果数据库引擎没有引发合理的异常,我会采取措施来解决问题。首先,我允许字段为NULL,以便我可以将稀疏数据插入表中。然后我把我的INSERT语句减去,这样我就可以一次做一个字段了。继续在INSERT语句中添加越来越多的字段,直到它中断。它破裂的地方将告诉你下一步该去哪里。

如果所有字段都是TEXT,VARCHAR或某些字符串类型,那么INSERT语句失败的原因可能是您没有用"包装字符串。或者,如果您的浮点字段实际上是模式中的浮点数,也许您传递的是字符串而不是浮点数。在我之前使用的两个数据库(MySQL和SQLite)中,数字用引号括起来。

答案 3 :(得分:1)

与语言/字符集无关,以及'Aixàs'中'a'的重音?

答案 4 :(得分:0)

尝试使用float。