MySQL字符串到时间格式

时间:2017-12-08 16:23:14

标签: mysql

你能帮忙吗?

在数据库中,时间以字符串格式表示,如5.5(小时)如何转换为5:30分钟

我试过

select CAST('5.50' AS DATETIME)

select STR_TO_DATE('5.50', '%h:%i %p') ;

但这不起作用。

谢谢

3 个答案:

答案 0 :(得分:1)

您可以将5.5小时间隔添加到时间00:00:00,以获得05:30:00的时间。

然而:

select time '00:00:00' + interval '5.5' hour

不起作用。由于某种原因,MySQL将5.5截断为5。所以使用

select time '00:00:00' + interval '5.5' * 60 * 60 second

代替。

更新:刚看了一眼。 interval 5.5 hour无效的 <cfscript> record=deserializeJSON(query_testing.data_test); writeDump(record); </cfscript> 在2007年作为错误归档:https://bugs.mysql.com/bug.php?id=31013

答案 1 :(得分:1)

我不知道这样做的方法很简陋,但这是一种愚蠢的方式。

select SEC_TO_TIME(5.5 * 3600)

我将5.5转换为秒,然后从几秒钟转换为秒。

希望这有帮助

答案 2 :(得分:0)

要以格式hh:mm:ss获取时间,您可以使用此查询。

SELECT SUBTIME(TIME(DATE_ADD(FROM_UNIXTIME(UNIX_TIMESTAMP(0),'%Y-%m-%d %H:%i:%s'), INTERVAL 5.5*60 MINUTE)), TIME(UNIX_TIMESTAMP(0)));

SQL fiddle

上查看

修改

如果您想要seconds准确度,请更改此类查询。

SELECT SUBTIME(TIME(DATE_ADD(FROM_UNIXTIME(UNIX_TIMESTAMP(0),'%Y-%m-%d %H:%i:%s'), INTERVAL 5.501*3600 SECOND)), TIME(UNIX_TIMESTAMP(0)));