gpt4 book ai didi

mysql - mysql中的 float 到时间的转换

转载 作者:行者123 更新时间:2023-11-29 06:14:49 27 4
gpt4 key购买 nike

我在表中有一个float字段小时用于插入时间如下:

If 6.3 means 6 hours and 30 minutes
If 8.04 means 8 hours and 4 minutes

现在我想将这些所有浮点值添加到具有时间格式的另一列 new_hours

我需要添加如下条目:

If 6.3 in hours column then 06:30:00 in new_hours column

If 8.04 in hours column then 08:04:00 in new_hours column

我在 hours 列中有很多条目,我想通过一个 sql 查询从 hours 添加 new_hours。

我们将不胜感激。谢谢。

最佳答案

方法有很多种;我用 sec_to_timeMySQL 将给定的秒数转换为时间。

第一步是将您的 float 转换为秒数(从午夜开始),然后将其包装到 sec_to_time 中:

MariaDB [(none)]> select sec_to_time( cast(floor(8.04)*60*60 + ((8.04-floor(8.04))*100*60) as int) );
+-----------------------------------------------------------------------------+
| sec_to_time( cast(floor(8.04)*60*60 + ((8.04-floor(8.04))*100*60) as int) ) |
+-----------------------------------------------------------------------------+
| 08:04:00 |
+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)


MariaDB [(none)]> select sec_to_time( cast(floor(6.3)*60*60 + ((6.3-floor(6.3))*100*60) as int) );
+--------------------------------------------------------------------------+
| sec_to_time( cast(floor(6.3)*60*60 + ((6.3-floor(6.3))*100*60) as int) ) |
+--------------------------------------------------------------------------+
| 06:30:00 |
+--------------------------------------------------------------------------+
1 row in set (0.00 sec)

而且我很确定有一种更简单的方法可以从 8.04 中提取 .04...

update 语句将是:

update t set new_hours = 
sec_to_time( cast(floor(hours)*60*60
+ ((hours-floor(hours))*100*60) as int) );

关于mysql - mysql中的 float 到时间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com