MySQL似乎支持double precision
FLOAT和DOUBLE类型表示近似数值数据值。MySQL对单精度值使用四个字节,对双精度值使用八个字节.
是否有一种方法来声明文字是一个double precision,而不是一个float、decimal或其他什么?我在数字文字上的文档中没有提到这一点。在PostgreSQL中,我可以用
SELECT 1::double precision,
double precision '1',
CAST(1 AS double precision);发布于 2018-06-12 07:16:29
虽然在数字文字上没有显式地出现在文档中。您可以使用科学表示法(使用double precision )来生成一个似乎有效的D1文字,
MariaDB [test]> CREATE TABLE foo AS SELECT 1.0e0 AS "se_decimal", 1e0 AS "se_nodecimal", 1.0 AS "decimal";
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0
MariaDB [test]> SHOW CREATE TABLE foo;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| foo | CREATE TABLE `foo` (
`se_decimal` double NOT NULL,
`se_nodecimal` double NOT NULL,
`decimal` decimal(2,1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)这实际上是Spec所支持的,当它看到或E时,它会将文字从e转移到D7。来自SQL 2011 n规范,
::=
E 数字文字上的文档大概是这么说的,
近似值数字文字用带有尾数和指数的科学符号表示。其中一部份或两部份均可签署。例如:
1.2E3,1.2E-3,-1.2E3,-1.2E-3。
虽然文档没有说明类型,但它是double (见上文)。
也看,
https://dba.stackexchange.com/questions/209356
复制相似问题