我想将列中的所有值从“ hh:mm:ss.mmm”转换为“ ss.mmm”。
我已经尝试过TIME_FORMAT(
持续时间, 's%.f%)
,但这会显示秒和毫秒,并且当值超过1分钟时并不会一直计算正确的秒。
或者,我可以使用开始和结束列之间的差异,只要它以“ ss.mmm”返回时间即可。我已经尝试过使用TIMESTAMPDIFF(microsecond,
开始,
结束)as diff
来完成此操作,但这要花费毫秒,而且我不知道如何将其转换为“ ss.mmm”。而且,当指定秒而不是微秒时,它将丢失毫秒。
谢谢:)
答案 0 :(得分:1)
这应该按照您的要求执行,如果我正确理解您已经包含毫秒的数据。
我不认为MySQL具有固有的毫秒功能,但是我们可以改用微秒。
SELECT CONCAT(TIME_TO_SEC('15:30:15.293'), '.', TIME_FORMAT('15:30:15.293', '%f'));
这将输出如下;
55815.293000