我正在使用MySQL数据库,以'PTxxMxxS'格式存储时间段/持续时间。
我想转换为标准时间格式,例如我想将PT4M17S转换为04:17。
我尝试过STR_TO_DATE和TIME_FORMAT的各种组合,但没有成功。
我搜索过但找不到解决方案 - 我认为问题的一部分是我不知道这种类型的时间格式被调用了。
感谢。
答案 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()函数进行简单转换可能不适合您。在应用转换之前检查您的数据。