删除 varchar 列的最后 n 个字符

Leo*_*eon 6 postgresql

我想知道是否有一种“紧凑”的方式可以从 PostGreSQL 的列中删除最后 n 个字符。

我有一个以日期格式生成的列,格式如下:yyyy-MM-dd。

我更改了表格以使该列成为 varchar,替换了所有不必要的破折号,但我想不出一种快速可靠的方法来删除最后两个字符,因为我希望 varchar 仅显示 yyyyMM。

“快速可靠”是指不会要求我使用临时表的东西。

提前致谢

kli*_*lin 16

使用left(),例如:

select 
    left('20181004', 6),    -- get 6 leftmost characters
    left('20181004', -2)    -- or remove 2 last ones

  left  |  left  
--------+--------
 201810 | 201810
(1 row)     
Run Code Online (Sandbox Code Playgroud)