English 中文(简体)
编号:与MySQL
原标题:number_format() with MySQL
  • 时间:2009-12-21 10:25:17
  •  标签:
  • mysql

我们需要一种途径,从我的栏目decimal (23,2) NOT NUL DEFAULT 0.00上获取格式编号。

in php i could use this function number_format( 1111.00 , 2, , , . ); it would return 1.111,00 (in Germany we use , to define decimal numbers)

如何在神话中这样做? 用插手取代?

最佳回答

With performance penalty and if you need todo it only in SQL you can use the FORMAT function and 3 REPLACE : After the format replace the . with another char for example @, then replace the , with a . and then the chararacter you choose by a , which lead you for your example to 1.111,00

SELECT REPLACE(REPLACE(REPLACE(FORMAT("1111.00", 2), ".", "@"), ",", "."), "@", ",")
问题回答

你们可以使用

SELECT round(123.4566,2)  -> 123.46

FORMAT(X,D) 表格X以编号、编号编号编号、编号编号编号、编号编号##、编号编号编号编号编号、四舍五入到D decimal 地点等格式,并将结果作为示意图。 如果D0,则结果没有点数或分数部分。

 SELECT FORMAT(12332.123456, 4);
        ->  12,332.1235 

Antonio sponsa

CONCAT(REPLACE(FORMAT(number,0), , , . ), , ,SUBSTRING_INDEX(FORMAT(number,2), . ,-1))

错误;结果可能不正确!

例如,如果“数目”为12345.67,则由此引起的范围将是:

 12.346,67 

而不是

 12.345,67 

这是因为,如果单分部分大于或等于0.5(如我所举)的几轮“数字”!

你们的使用

CONCAT(REPLACE(FORMAT(FLOOR(number),0), , , . ), , ,SUBSTRING_INDEX(FORMAT(number,2), . ,-1))

如果您的MySQL/MDBarias FORMAT不支持“当地人——姓名”(见MindStalker的哨所――Thx 4, 棕榈)。 注

CREATE DEFINER=`yourfunctionname`@`%` FUNCTION `money`(
     `betrag` DECIMAL(10,2)

 )
 RETURNS varchar(128) CHARSET latin1
 LANGUAGE SQL
 NOT DETERMINISTIC
 CONTAINS SQL
 SQL SECURITY DEFINER
 COMMENT   
 return(
     select replace(format(cast(betrag as char),2), , ," ") as betrag
 )

• :

 select replace(format(cast(amount as char),2), , ," ") as amount_formated

你们需要:

CONCAT(REPLACE(FORMAT(number,0), , , . ), , ,SUBSTRING_INDEX(FORMAT(number,2), . ,-1))




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签