如何使用SQL将'PT5H19M'转换为time
格式?我在MySQL STR_TO_DATE('PT5H19M', 'PT%HH%iM')
答案 0 :(得分:0)
这是由于启用了SQL模式NO_ZERO_DATE
(在MySQL 5.7及更高版本中默认情况下)引起的。如果您可以控制SQL模式,则可以通过取消设置NO_ZERO_DATE
来解决它,例如
SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'NO_ZERO_DATE', '')
SELECT STR_TO_DATE('PT5H19M', 'PT%HH%iM')
输出:
05:19:00
作为一种解决方法,如果您不能(或不想)设置SQL模式,则可以CONCAT
为字符串提供有效日期,然后使用TIME
来获取时间输出的一部分,例如
SELECT TIME(STR_TO_DATE(CONCAT('2001-01-01','PT5H19M'), '%Y-%m-%dPT%HH%iM'))
输出:
05:19:00
答案 1 :(得分:0)
雪花
select to_time('PT5H19M', '"PT"HH24"H"MI"M"');
----------------------------------------+
TO_TIME('PT5H19M', '"PT"HH24"H"MI"M"') |
----------------------------------------+
05:19:00 |
----------------------------------------+