在Mysql中不允许这样做:
SELECT CAST(0 as DOUBLE) as ZERO
我该怎么做?
答案 0 :(得分:2)
一位同事找到了答案:
SELECT 0.0 + '0' as ZERO
诀窍。
答案 1 :(得分:1)
使用CAST
时,类型可以是以下之一:
BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL[(M[,D])] SIGNED [INTEGER] TIME UNSIGNED [INTEGER]
所以你的例子是:
SELECT CAST(0 as DECIMAL) as ZERO
您可以选择指定允许的精度,例如:
SELECT CAST(0 as DECIMAL(18,8)) as ZERO
参考:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html
答案 2 :(得分:0)
我认为您希望投放到DECIMAL
,而不是DOUBLE
。以下是包含类型列表的官方文档:http://dev.mysql.com/doc/refman/5.6/en/cast-functions.html#function_cast
答案 3 :(得分:0)
我总是在码头中使用小数:“DECIMAL值的最大范围与DOUBLE相同”
SELECT转换(0作为Decimal)也是ZERO;
答案 4 :(得分:0)
你无法做到,你可以投射到的类型记录在这里:MySQl Docs - Cast Functions
如果您更准确地描述要归档的内容,我们将更容易回答。