MySQL将高度格式从厘米转换为英尺 - 英寸?

时间:2015-09-16 10:40:20

标签: mysql sql calculated-columns

我的数据库中的格式为:以厘米为单位,如137厘米

我想转换像 137厘米到4英尺6英寸(4英尺6英寸)的例子

实际表格:以厘米为单位的高度

例如:

SELECT * FROM height

id height_cm
1  137
2  139
3  172
4  175

当我进行SQL查询时,我希望以下结果为英尺 - 英寸

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

公式为:1 inch = 2.54 cm1 foot = 12 inches

2 个答案:

答案 0 :(得分:3)

执行select时需要对此进行一些算术运算。

让我们开始获取inchfoot

mysql> select id, 
floor(height_cm/(12*2.54)) as foot , 
round((height_cm mod (12*2.54))/2.54) as inch from height ;
+------+------+------+
| id   | foot | inch |
+------+------+------+
|    1 |    4 |    6 |
|    2 |    4 |    7 |
|    3 |    5 |    8 |
|    4 |    5 |    9 |
+------+------+------+

现在使用concat我们可以格式化显示

mysql> select id, 
concat(
 floor(height_cm/(12*2.54))
 ,'\''
 ,round((height_cm mod (12*2.54))/2.54)
 ,'"'
) as height_finc from height ;
+------+-------------+
| id   | height_finc |
+------+-------------+
|    1 | 4'6"        |
|    2 | 4'7"        |
|    3 | 5'8"        |
|    4 | 5'9"        |
+------+-------------+

答案 1 :(得分:1)

这基本上是算术和字符串格式化:

select floor(height_cm / (2.54 * 12)) as feet,
       (height_cm - floor(height_cm / (2.54 * 12)) * 12 * 2.54) / 2.54 as inches

格式化为字符串:

select concat(floor(height_cm / (2.54 * 12)), '''', 
              round((height_cm - floor(height_cm / (2.54 * 12)) * 12 * 2.54) / 2.54), '"') as feet_inches

我认为这更简单:

select concat(floor(height_cm / (2.54 * 12)), '''', 
              round(height_cm / 2.54) % 12, '"')