【发布时间】:2019-07-12 08:26:48
【问题描述】:
我正在尝试替换 SQL 中特定位置的字符。我想像这样替换字符串中的第 15 个字符:2019-07-08 06:56:00
我的SQL代码是这样的:
regexp_replace(cast(date_trunc('minute', from_unixtime(mtc.conversion_timestamp)) as string), 'REGEX', '0')
我试过这样的正则表达式:^.{6},但它给了我从 0 到 6 的所有字符。我只需要在第 15 个位置匹配一个 SINGLE 字符。因此,2019-07-08 06:56:00 的匹配应该是 6(从 56)。
基本上,我想把2019-07-08 06:56:00转成2019-07-08 06:50:00
我试过到处寻找,但无法弄清楚。非常感谢。
【问题讨论】:
-
您是要替换还是提取它?
-
为什么不使用日期函数?
SUBSTRING或LIKE会起作用 - 但如果您在约会时使用它,请使用正确的工具。 -
@WiktorStribiżew 我想替换一个字符。
-
@Mitch 我需要将日期时间放在字符串中,所以我认为 regexp_replace 将是最简单的解决方案
-
@a_horse_with_no_name 我正在使用 Impala。似乎 regexp_replace 是我可以替换字符串中的字符的唯一方法。 (cloudera.com/documentation/enterprise/5-9-x/topics/…)