[英]Convert string to time sql or snowflake
How can I convert 'PT5H19M' to time
format using SQL? 如何使用SQL将'PT5H19M'转换为time
格式? I used in MySQL STR_TO_DATE('PT5H19M', 'PT%HH%iM')
我在MySQL STR_TO_DATE('PT5H19M', 'PT%HH%iM')
This is caused by the SQL Mode NO_ZERO_DATE
being enabled (which it is by default in MySQL 5.7 and above). 这是由于启用了SQL模式NO_ZERO_DATE
(在MySQL 5.7及更高版本中默认情况下)引起的。 If you can control the SQL Mode, you can resolve it by unsetting NO_ZERO_DATE
eg 如果可以控制SQL模式,则可以通过NO_ZERO_DATE
来解决它,例如
SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'NO_ZERO_DATE', '')
SELECT STR_TO_DATE('PT5H19M', 'PT%HH%iM')
Output: 输出:
05:19:00
As a workaround if you can't (or don't want to) set the SQL Mode, you could CONCAT
a valid date to your string, and then use TIME
to get the time part of the output eg 因为如果你不能(或不愿)一种解决方法设置SQL模式,你可以CONCAT
有效日期到您的字符串,然后用TIME
来得到的输出如部分时间
SELECT TIME(STR_TO_DATE(CONCAT('2001-01-01','PT5H19M'), '%Y-%m-%dPT%HH%iM'))
Output: 输出:
05:19:00
For Snowflake 对于雪花
select to_time('PT5H19M', '"PT"HH24"H"MI"M"');
----------------------------------------+
TO_TIME('PT5H19M', '"PT"HH24"H"MI"M"') |
----------------------------------------+
05:19:00 |
----------------------------------------+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.