我在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附近出现错误
答案 0 :(得分:0)
MariaDB SQL语法没有什么不同,只是文档语法。
MySQL和MariaDB都允许将一列声明为DECIMAL
,但不带括号,在这种情况下,默认值用于表示最大位数和小数位数。
所以DECIMAL
与DECIMAL(10,0)
相同。
MariaDB文档只是使用EBNF语法更正式地描述了这一点,其中方括号用来表明所包含的部分是可选的。
因此DECIMAL[(M[,D])]
实际上是在说'(...)'部分是可选的,此外,',D'部分也是可选的。所以
DECIMAL
DECIMAL(10)
DECIMAL(10,0)
都是有效的变体,并且与MySQL和MariaDB的工作方式相同。
只需在MariaDB上不变地使用MySQL代码,即可在那正常工作。
答案 1 :(得分:0)
最终,Visual Studio 2015和我的MYSQL更新是一个问题。 我卸载了:
并安装:
所有操作再次生效。 谢谢