如何将分隔符从“,”更改为“。”在 SQL 数据库中用于小数列

Posted

技术标签:

【中文标题】如何将分隔符从“,”更改为“。”在 SQL 数据库中用于小数列【英文标题】:How to change the delimeter from "," to "." in SQL database for the decimal column 【发布时间】:2020-04-01 21:42:08 【问题描述】:

默认情况下,我的 ASP.NET 项目创建一个带有“,”分隔符的十进制列的表。所有小数都以“100,10”格式存储。如何将分隔符更改为“.”?

它会导致 jQuery 验证出现问题。 JQuery 认为它不是一个数字,并且该字段的格式是错误的。我不想使用 jQuery。

【问题讨论】:

您使用的是什么类型的数据库(mysql、Sql Server、Oracle 等),该列的确切数据类型是什么? 数据库 - SQL,数据类型 - 十进制 有许多不同种类的 SQL 数据库。您使用的是哪种特定类型的 SQL 数据库? 好的,图中的dbo表示MS Sql Server。 Oracle、Sqlite、Postgresql、mysql 和 access 也都是 SQL 数据库,而且它们都在幕后做这件事略有不同。 可能重复***.com/questions/5199835 【参考方案1】:

所有小数都以“100,10”格式存储

这误解了正在发生的事情。 Sql Server 以人类不可读的二进制格式存储十进制值。

您看到的更有可能是查询工具、报告平台应用的格式,或者在从数据库返回数据后由操作系统或客户端系统上的进程中的文化设置选择的格式。

【讨论】:

请看上面的图片。那么除了在jquery中修复所有内容之外,没有其他方法可以解决这个问题吗?当我在字段中输入 100.10 时,它在数据库中存储为 0。 不一定在 jquery 中。您还有一些 C# 和 aspx 标记,有时您也可以在 IIS 级别处理它。【参考方案2】:

您混淆了存储表示

SQL Server 不存储“.”或",",它只存储一个二进制值。

Visual Studio 中十进制数的表示由您在 Windows 中的语言设置控制。

jquery-validate 的验证(?您没有说明您正在使用哪种机制)由配置控制。请参阅these answers,或您的库的文档。

【讨论】:

以上是关于如何将分隔符从“,”更改为“。”在 SQL 数据库中用于小数列的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2012 如何将列的数据类型从位更改为日期字段?

如何:将实际执行方法从“行”更改为“批处理”-Azure SQL Server

NSJSONSerialization 将日期分隔符从 yyyy/MM/dd 更改为 yyyy\/MM\/dd [重复]

如何将 UITableViewCell 分隔符更改为自定义分隔符?

从 SQL 函数获取单个值时,如何将 NULL 更改为 0?

如何将用逗号分隔的纯文本更改为节点中的数组? [复制]