在我的MySQL数据库中,我有一个名为“HoursSpent”的浮点字段,其值为“0.25”,“1.75”,“2.5”等。有没有办法让我的SELECT语句格式化这些值像这样的友好格式?:
0.25 = 15分钟
1.75 = 1小时45分钟
2.5 = 2小时30分钟
“HoursSpent”字段应该只有0.25个增量的值,但是如果有人要像0.16一样放置一些东西,那么如果SELECT语句通过将它四舍五入到最接近的0.25来处理它会很好(所以这种情况0.16会变成0.25或15分钟。
答案 0 :(得分:3)
SELECT CONCAT(CASE WHEN FLOOR(HoursSpent)>0 THEN CONCAT(FLOOR(HoursSpent),' Hours and ') ELSE '' END,60*(HoursSpent-FLOOR(HoursSpent)),' Minutes') As Formatted
FROM table;
结果:
+--------------------+
| Formatted |
+--------------------+
| 2 Hours 45 Minutes |
| 3 Hours 30 Minutes |
| 4 Hours 15 Minutes |
| 15 Minutes |
+--------------------+
* EDITv2
使用单数和复数形式:
SELECT CONCAT(
CASE
WHEN FLOOR(HoursSpent)>0 THEN
CONCAT(FLOOR(HoursSpent),
CASE
WHEN FLOOR(HoursSpent)=1 THEN
' Hour and '
ELSE
' Hours and '
END
)
ELSE
''
END,
60*(HoursSpent-FLOOR(HoursSpent)),
' Minutes'
) As Formatted
FROM table;
导致:
+------------------------+
| Formatted |
+------------------------+
| 2 Hours and 45 Minutes |
| 3 Hours and 30 Minutes |
| 4 Hours and 15 Minutes |
| 15 Minutes |
| 1 Hour and 30 Minutes |
+------------------------+
抱歉延误。 ; - )