SQL 将价格中的单位和小数分开

问题描述 投票:0回答:1

我在 MySQL 中的价格列包含以下值:

价格
1020.2200
202.0000
0.5000
820.6700

我想在浮点处分割。

这就是我想要得到的:

价格 p_单位 p_小数
1020.2200 1020 22
202.0000 202 00
0.5058 0 50
820.6700 820 67

这是我到目前为止编写的 SQL 语句:

SELECT 
    price, FLOOR(price) AS `p_units`, `price` MOD 1 AS `p_decimal` 
FROM 
    mytable

问题是 p_decimal 结果的结果是“前导 0”。和“4 位十进制数字”而不是 2 :

0.2200
0.0000
0.5058
0.6700
sql decimal digits
1个回答
0
投票

Floor
并且进行一些处理应该会给出预期的结果。

小提琴

SELECT 
    price,
    FLOOR(price) AS p_units, 
    LPAD(FLOOR((price - FLOOR(price)) * 100), 2, '0') AS p_decimals
FROM 
    mytable;
  • FLOOR 提取整数部分(p_units)。
  • 小数部分被隔离并乘以 100,然后在必要时用零填充,以确保 p_decimals 恰好为两位数。
© www.soinside.com 2019 - 2024. All rights reserved.