MySQL, Windows现在我的数据库中有一个数字字段存储了某一个时间点的时间值,用秒表示,比如:现在是17:11:40,数据库中存储这个时间就是: 17*3600+11*60+40;
现在我要把这个时间查询出来表示成HH:MM:SS的格式。
现在我的想法是: select floor(f_time/3600) + ":" + floor(f_time%3600/60)+":"+floor(f_time%60) As f_time From t_mytabel;请问这样是否可行,另外,用什么办法效率更高?谢谢
现在我要把这个时间查询出来表示成HH:MM:SS的格式。
现在我的想法是: select floor(f_time/3600) + ":" + floor(f_time%3600/60)+":"+floor(f_time%60) As f_time From t_mytabel;请问这样是否可行,另外,用什么办法效率更高?谢谢
mysql> set @t=61900;
Query OK, 0 rows affected (0.00 sec)mysql> select floor(@t/3600) + ":" + floor(@t%3600/60)+":"+floor(@t%60) ;
+-----------------------------------------------------------+
| floor(@t/3600) + ":" + floor(@t%3600/60)+":"+floor(@t%60) |
+-----------------------------------------------------------+
| 68 |
+-----------------------------------------------------------+
1 row in set, 2 warnings (0.00 sec)mysql>
mysql> select concat(floor(@t/3600), ":" ,floor((@t%3600)/60),":",floor(@t%60));+-------------------------------------------------------------------+
| concat(floor(@t/3600), ":" ,floor((@t%3600)/60),":",floor(@t%60)) |
+-------------------------------------------------------------------+
| 17:11:40 |
+-------------------------------------------------------------------+
1 row in set (0.00 sec)mysql>
Query OK, 0 rows affected (0.00 sec)mysql> select SEC_TO_TIME(@t);
+-----------------+
| SEC_TO_TIME(@t) |
+-----------------+
| 17:11:40 |
+-----------------+
1 row in set (0.00 sec)mysql>