如何切割长度未知的字符串的左侧部分? (具有 sql 功能)

How can i cut the left part of the string with unknown legth? (with sql function)

在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

您可以使用 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

您可以使用 substr。负起始位置被解释为相对于字符串的结尾。

select substr('24:15:11', -5)