在 PostgreSQL 中将双精度转换为文本时出现意外行为
Unexpected behavior when converting double precision to text in PostgreSQL
今天遇到这种奇怪的行为..
select date_part('year', CURRENT_DATE);
2017
select to_char(date_part('year', CURRENT_DATE),'9999');
" 2017"
select length(to_char(date_part('year', CURRENT_DATE),'9999'));
5
当然可以直接用to_char(CURRENT_DATE,'YYYY')
,只是好奇为什么双精度数在转成文本的时候开头是空白的space。 谢谢!
备注:
- Data Type Formatting Functions (PostgreSQL 8.2.xx)
- 服务器版本:PostgreSQL 8.2.15 (Greenplum Database 4.3.10.0)
此行为已记录(请参阅 examples table)。它离开 space 为负值的 -
符号。
似乎可以使用 FM
前缀来避免这种情况,即 'FM9999'
.
今天遇到这种奇怪的行为..
select date_part('year', CURRENT_DATE);
2017
select to_char(date_part('year', CURRENT_DATE),'9999');
" 2017"
select length(to_char(date_part('year', CURRENT_DATE),'9999'));
5
当然可以直接用to_char(CURRENT_DATE,'YYYY')
,只是好奇为什么双精度数在转成文本的时候开头是空白的space。 谢谢!
备注:
- Data Type Formatting Functions (PostgreSQL 8.2.xx)
- 服务器版本:PostgreSQL 8.2.15 (Greenplum Database 4.3.10.0)
此行为已记录(请参阅 examples table)。它离开 space 为负值的 -
符号。
似乎可以使用 FM
前缀来避免这种情况,即 'FM9999'
.