从MySQL数据库转换周期/持续时间格式

时间:2016-08-17 15:55:26

标签: mysql

我正在使用MySQL数据库,以'PTxxMxxS'格式存储时间段/持续时间。

我想转换为标准时间格式,例如我想将PT4M17S转换为04:17。

我尝试过STR_TO_DATE和TIME_FORMAT的各种组合,但没有成功。

我搜索过但找不到解决方案 - 我认为问题的一部分是我不知道这种类型的时间格式被调用了。

感谢。

1 个答案:

答案 0 :(得分:0)

正如str_to_date()函数上的mysql文档所说:

  

服务器扫描str尝试匹配格式。

上述意味着format参数用于解析输入字符串,而不是格式化结果的输出。这就是您的转换失败的原因。

以下通话将转换来自' PTxxMxxS'格式化为标准的mysql时间格式(无需在format参数中指定最后一个S字符,但如果你愿意,可以添加它,无所谓)。

STR_TO_DATE(fieldvalue, 'PT%iM%s') 

但是,正如@MarcB已经指出的那样,mysql的time data type对其范围有限制,因此使用str_to_date()函数进行简单转换可能不适合您。在应用转换之前检查您的数据。