在ETL过程中,我收到一个varchar字段,并且(值的)长度在行与行之间更改。 我需要从字符串的右边保留5个符号。 这意味着我需要切割左侧,但由于长度未知,所以不能切割。
我尝试过select substring('24:15:11',4, 5)
,但是对我没有帮助,字符串可能是'2019-05-01 22:15:11'
。
sql:
select substring('24:15:11',4, 5)
预期:
15:11
答案 0 :(得分:5)
您可以使用substr
。负的起始位置被解释为相对于字符串的结尾。
select substr('24:15:11', -5)
答案 1 :(得分:3)
您可以使用length()确定substr()的第二个参数:
select substr('24:15:11', length('24:15:11') - 4, 5)
或简单地:
select substr('24:15:11', length('24:15:11') - 4)
了解preosto的string functions。
答案 2 :(得分:-1)
SELECT RIGHT('2019-05-01 22:15:11', 5) AS ExtractString;
这将提供预期的输出