从字符串解析间隔的最佳方法是什么?
What's the best way to parse an interval from a string?
在 postgres 中从字符串 (varchar) 值获取间隔的最直接方法是什么?
我有一列包含 JSON 数据。 JSON 属性之一是 "runtime" 值,其格式如下:"runtime":"03s.684"
。使用 JSON 函数,我可以毫无问题地获取运行时值,但随后我得到了带引号的字符串值。
我正在寻找类似于 to_timestamp()
的内容,因此我可以解析字符串,执行如下操作:
select to_interval('"03s.684"', '"SS\s.MS"'); --would like to do / this function doesn't exist
或者像这样的也不错:
select to_timestamp('"03s.684"', '"SS\s.MS"') :: interval; --also not valid
我认为应该可行的一种方法是将字符串转换为可以使用 regexp_replace()
转换为间隔的格式,但这似乎不是最佳方法。从自定义格式的时间字符串中获取间隔的推荐方法是什么?
您可以使用to_number()
SELECT to_number('3s.684', '999D9099') * '1 second'::interval;
在 postgres 中从字符串 (varchar) 值获取间隔的最直接方法是什么?
我有一列包含 JSON 数据。 JSON 属性之一是 "runtime" 值,其格式如下:"runtime":"03s.684"
。使用 JSON 函数,我可以毫无问题地获取运行时值,但随后我得到了带引号的字符串值。
我正在寻找类似于 to_timestamp()
的内容,因此我可以解析字符串,执行如下操作:
select to_interval('"03s.684"', '"SS\s.MS"'); --would like to do / this function doesn't exist
或者像这样的也不错:
select to_timestamp('"03s.684"', '"SS\s.MS"') :: interval; --also not valid
我认为应该可行的一种方法是将字符串转换为可以使用 regexp_replace()
转换为间隔的格式,但这似乎不是最佳方法。从自定义格式的时间字符串中获取间隔的推荐方法是什么?
您可以使用to_number()
SELECT to_number('3s.684', '999D9099') * '1 second'::interval;