MariaDB,将VARCHAR转换为DECIMAL

时间:2019-06-21 14:09:48

标签: mariadb decimal varchar

我在VARCHAR中有一列,我想转换为DECIMAL,以便在我的vb项目中的查询后使用。但是我找不到正确的语法。

我尝试像mysql use一样使用fisrt:

SELECT 
CAST(REPLACE(Espesor,',','.') AS DECIMAL (10,2)) AS TT
FROM Produccion
WHERE id = 153392

,我有5,5(工作正常)。 但是在MariaDB i下,语法是不同的。就是这样

DECIMAL[(M[,D])]

我尝试使用以下代码:

SELECT 
CAST(REPLACE(Espesor,',','.') AS DECIMAL[(10[,2])]) AS TT
FROM Produccion
WHERE id = 153392

我在[(10 [,2])])AS TT附近出现错误

2 个答案:

答案 0 :(得分:0)

MariaDB SQL语法没有什么不同,只是文档语法。

MySQL和MariaDB都允许将一列声明为DECIMAL,但不带括号,在这种情况下,默认值用于表示最大位数和小数位数。

所以DECIMALDECIMAL(10,0)相同。

MariaDB文档只是使用EBNF语法更正式地描述了这一点,其中方括号用来表明所包含的部分是可选的。

因此DECIMAL[(M[,D])]实际上是在说'(...)'部分是可选的,此外,',D'部分也是可选的。所以

DECIMAL
DECIMAL(10)
DECIMAL(10,0)

都是有效的变体,并且与MySQL和MariaDB的工作方式相同。

只需在MariaDB上不变地使用MySQL代码,即可在那正常工作。

答案 1 :(得分:0)

最终,Visual Studio 2015和我的MYSQL更新是一个问题。 我卸载了:

  1. 用于Visual Studio 1.2.8的MySQL
  2. Mysql Connector Net 8.0.16

并安装:

  1. 用于Visual Studio 2.0.5 m4的MySQL
  2. Mysql Connector Net 6.9.9

所有操作再次生效。 谢谢