2012-04-03 85 views

回答

2

一位同事找到了答案:

SELECT 0.0 + '0' as ZERO 

的伎倆。

+0

它返回十進制不是雙倍。 – 2013-09-11 15:27:39

+0

@NadeemJamali:只是再試一次,它確實會返回一個double。也許這是我的MyISAM版本的MySQL v5.1.45 – 2013-09-11 15:31:38

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

0

我永諾使用的小數,在文檔:「DECIMAL值的最大範圍是一樣的DOUBLE」

所以做一個SELECT鑄造(0作爲十進制)作爲ZERO;

0

你不容做到這一點,你可以投在這裏被記錄的類型:MySQl Docs - Cast Functions

如果你描述更精確地要存檔它會更容易爲我們解答一下。