Aff*_*uie 1 sql t-sql sql-server
我正在执行此TSQL代码:
DECLARE @myString varchar;
SET @myString = '123.0'
SELECT CAST(@myString as decimal(25,10))
Run Code Online (Sandbox Code Playgroud)
但是我一直得到1.00000因为将myString更改为'123'并没有改变它.
任何关于我做错的建议都表示赞赏.
提前致谢!
varchar()
在MySQL中使用(和相关类型)时总是使用长度.默认值是1
在此上下文中.所以这解决了你的问题:
DECLARE @myString varchar(255);
SET @myString = '123.0';
SELECT CAST(@myString as decimal(25,10));
Run Code Online (Sandbox Code Playgroud)
你得到了1
,因为你的代码被解释为
DECLARE @myString varchar(1);
SET @myString = '123.0';
SELECT CAST(@myString as decimal(25,10));
Run Code Online (Sandbox Code Playgroud)
该文档是不避讳这一点:
如果未在数据定义或变量声明语句中指定n,则默认长度为1.如果在使用CAST和CONVERT函数时未指定n,则默认长度为30.
归档时间: |
|
查看次数: |
52 次 |
最近记录: |