Postgresql/Greenplum中将数字转换为字符串TO_CHAR函数前面会多出一个空格

时间:2023-03-09 19:28:23
Postgresql/Greenplum中将数字转换为字符串TO_CHAR函数前面会多出一个空格

-- 问题1、、Postgresql中将数字转换为字符串前面多出一个空格。

SELECT TO_CHAR('' + , '');

-- 解决1、使用如下,参数二前面加上fm就可以去掉空格了,如下:

SELECT TO_CHAR('' + , 'fm99999999');

-- 设计思路
-- 1、使用当前的年月日生成yyyyMMdd格式的字符串

SELECT to_char(now(), 'yyyyMMdd')

-- 2、将生成的yyyyMMdd格式的字符串拼接00000

SELECT COALESCE(null, to_char(now(), 'yyyyMMdd')||'')

-- 3、将生成的yyyyMMdd格式的字符串拼接00000字符串转换成数字类型,然后加1

SELECT to_number(COALESCE(null, to_char(now(), 'yyyyMMdd')||''), '') + 

-- 4、将生成的数字类型的批次号转换为字符串类型的,字符串最前面有一个空格

select to_char(to_number(COALESCE(null, to_char(now(), 'yyyyMMdd')||''), '') + , '')  

-- 5、将生成的数字类型的批次号转换为字符串类型的,将批次号最前面的空格去掉

select to_char(to_number(COALESCE(null, to_char(now(), 'yyyyMMdd')||''), '') + , 'fm9999999999999')