2011-12-29 22 views
15

是否可以將「。」中的小數點逗號更改。 (點)到MySQL輸出中的其他字符(逗號)?我不想使用像FORMAT這樣的函數,我只是想使用我通常使用的所有查詢而不做任何修改。我正在尋找一些設置(某些變量,語言環境等)。我試圖搜索手冊,但沒有成功。更改MySQL中的小數點分隔符

+1

我真的不明白這一點 - 「MySQL輸出」是什麼意思?通過mysql命令行客戶端顯示查詢結果?數字值沒有由MySQL定義的小數點分隔符,而是由用於輸出它們的語言和框架定義以供人使用。 – 2011-12-29 14:45:41

+1

@MattH,我的意思是任何客戶端輸出(控制檯,PHP,無論)。 PHP中的問題是,即使數據庫字段的類型爲'double',也總是會得到字符串。所以在PHP方面沒有明顯的通用解決方案,所以我在尋找MySQL。 – TMS 2011-12-29 14:56:36

回答

19

不,你不能。這是SQL標準,MySQL遵守它(至少在這一點上)。

問題並不在於輸出(正如你所提到的,在大多數DBMS中有各種各樣的FORMAT函數),而是INSERT。如果您可以使用逗號,作爲例如小數點(在其他語言環境中常見),則插入將變得不明確。請參閱我在問題中的回答:insert-non-english-decimal-points-in-mysql

+0

ypercube,謝謝。什麼是SQL標準? SQL查詢語法或輸出格式,還是兩者?我只需要輸出,所以如果我選擇「1/3」,它會輸出「0333333」。 – TMS 2011-12-29 20:29:52

+0

我不確定輸出格式是在SQL標準中指定的,還是遺漏了,並且可能因不同的連接方法/框架而不同。但我知道沒有辦法在MySQL中這樣做。 – 2011-12-29 22:19:57

21

CSV導出提示: SELECT REPLACE(CAST(prijs_incl AS CHAR), '.', ',')將爲您提供可用作歐洲Excel表中數值字段的輸入。

+15

有用的,你可以直接使用'SELECT REPLACE(prijs_incl,',',',')'作爲字符串轉換是自動的,參見[mysql doc](http://dev.mysql.com/doc/refman/5.0 /en/cast-functions.html#function_cast) – vicenteherrera 2012-06-26 11:56:17