Mysql选择双常量

Mysql选择双常量,mysql,select,double,constants,Mysql,Select,Double,Constants,这在Mysql中是不允许的: SELECT CAST(0 as DOUBLE) as ZERO 我该怎么做呢?我想你是想转换成十进制,而不是双精度。以下是带有类型列表的官方文档:使用CAST时,类型可以是以下类型之一: BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL[(M[,D])] SIGNED [INTEGER] TIME UNSIGNED [INTEGER] 您可以选择指定允许的精度,例如: SELECT CAST(0 as DECIMAL(18,

这在Mysql中是不允许的:

SELECT CAST(0 as DOUBLE) as ZERO

我该怎么做呢?

我想你是想转换成
十进制
,而不是
双精度
。以下是带有类型列表的官方文档:

使用
CAST
时,类型可以是以下类型之一:

BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL[(M[,D])] SIGNED [INTEGER] TIME UNSIGNED [INTEGER] 您可以选择指定允许的精度,例如:

SELECT CAST(0 as DECIMAL(18,8)) as ZERO

参考资料:

我在文档中始终使用十进制:“十进制值的最大范围与双精度相同”


因此,选择强制转换(0为十进制)为零

您不能这样做,您可以强制转换到的类型记录在这里:


如果您能更准确地描述您想要归档的内容,我们将更容易回答

一位同事找到了答案:

SELECT 0.0 + '0' as ZERO

这很有意思。

它返回的是十进制而不是双精度。@NadeemJamali:只要再试一次,它就返回了双精度。也许这就是我使用MyISAM的mysql v5.1.45版本
SELECT 0.0 + '0' as ZERO