MySQL 将高度格式转换为厘米

标签 mysql sql

我想将英尺和英寸转换为厘米格式

我的数据库中的格式是:

4'6" (4 feet, 6 inches)

换算厘米的公式

4*30.48 = 121.92 (convert feet to centimeters = multiply by 30.48)
6*2.54 = 15.24 (convert inches to centimeters   = multiply by 2.54)
So Result = 121.92 + 15.24 = 137.16 cm

例如:

实际表:英寸

SELECT * FROM inches

id height
1  4'6"
2  4'7"
3  5'8"
4  5'9"

当我执行 SQL 查询时,我期望以下结果为厘米

id height
1  137.16
2  139.7
3  172.72
4  175.26

提前致谢:)

最佳答案

在应用程序级别上可能更容易做到,但如果您确实必须这样做,您可以像这样在 SQL 中使用 SUBSTR 来完成此操作。和 INSTR函数和一些基本数学:

SET @height = '4''6"';
SELECT
    SUBSTR(@height, 1, INSTR(@height, '''') - 1) * 12 * 2.54 +
    SUBSTR(@height, INSTR(@height, '''') + 1, INSTR(@height, '"') - INSTR(@height, '''') - 1) * 2.54;

-- yields 137.16

或者,应用于您的表结构:

SELECT id,
    SUBSTR(height, 1, INSTR(height, '''') - 1) * 12 * 2.54 +
    SUBSTR(height, INSTR(height, '''') + 1, INSTR(height, '"') - INSTR(height, '''') - 1) * 2.54 AS height
FROM inches;

关于MySQL 将高度格式转换为厘米,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32492952/

相关文章:

mysql - 在 go 或 nodejs 中处理大量请求/秒

mysql - INSERT、UPDATE 或 DELETE 的 SQL 查询

php - Laravel where 子句在一系列 orwhere 之后不起作用

C# SQL父子表选择查询帮助

sql - ALTERNATE TO SQL GROUPBY(例如避免在聚合字段上重复)

php - 如何使用登录表单将密码用户名与 php mysql 匹配

php - Mysql select table 依赖另外两张表

mysql - 在 SQL Union 语法中组合数据

sql - 使用 SQL 排除记录

mysql - SQL 查询 : rows linked by one joint table link to another joint table