Mysql
 sql >> база данни >  >> RDS >> Mysql

Изключете научната нотация MySQL

Вероятно търсите FORMAT или ROUND функция:

Използване на FORMAT() , в зависимост от локала и вашите специфични нужди, може да се наложи да замените разделителя на хилядите :

mysql> SELECT FORMAT(9.755046187483832e17,0);
975,504,618,748,383,200

mysql> SELECT REPLACE(FORMAT(9.755046187483832e17,0), ',','');
975504618748383200

От друга страна, ROUND() като числово функция, тя извежда само цифри :

mysql> SELECT ROUND(9.755046187483832e17,0);
975504618748383200

Вижте http://sqlfiddle.com/#!2/d41d8/17614 за игра с това.

РЕДАКТИРАНЕ: Както забелязахте, последните две цифри са закръглени до 00 . Това е заради DOUBLE граници на прецизност. Трябва да запомните това двойно са приблизителни . Ако имате нужда от точни стойности и/или повече цифри от наличните с 16-битова точност на double, вероятно трябва да промените типа на колоната си на DECIMAL . По подразбиране DECIMAL има 10 цифри точност (10 база 10 цифри). Можете изрично да заявите до 65 цифри.

Например, ако имате нужда от точност до 20 цифри, пишете нещо подобно:

CREATE TABLE tbl (myValue DECIMAL(20), ...

Вижте http://dev.mysql.com/ doc/refman/5.6/en/fixed-point-types.html

Моля, имайте предвид обаче, че нещата не толкова просто. Избирането на десетичната колона може безшумно да я преобразува в двойна (или голям ?), като по този начин се губи допълнителната прецизност. Може да се наложи изрично да прехвърляте към низ, за ​​да запазите пълната прецизност. Това означава, че може да се наложи да се справите с това на ниво приложение.

create table tbl (dblValue DOUBLE, decValue DECIMAL(20,0));
insert into tbl values (975504618748383289, 975504618748383289);

SELECT dblValue, decValue FROM tbl;
--> DBLVALUE            DECVALUE
--> 975504618748383200  975504618748383200

SELECT CAST(dblValue AS CHAR), CAST(decValue AS CHAR) FROM tbl;
--> CAST(DBLVALUE AS CHAR)  CAST(DECVALUE AS CHAR)
--> 9.755046187483832e17    975504618748383289

Вижте http://sqlfiddle.com/#!2/d5f58/2 за примери.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL високо използване на процесора

  2. MySQL, Вземете потребителски ранг

  3. Можете ли да решите тази проста SQL заявка?

  4. Как да експортирате данни от SQL Server 2005 в MySQL

  5. XAMPP Работи много бавно с PHP/MySQL