2016-12-06 52 views
0

我一直在遵循示例here将日期转换为月份名称。然而,当我获得两个月的转换窗口时,第二个月的名字在一些字母的解释中变得分散。PostgeSQL将字符误解为铸造后的数字

FISCAL_YEAR 
     || TO_CHAR(TO_TIMESTAMP(to_Char(month(DATE_VAR),'999'), 'MM'), 'Month' 
     || TO_CHAR(TO_TIMESTAMP(to_Char(
     case 
      when 
       month(DATE_VAR)+1>12 then 1 
       else month(DATE_VAR)+1 end 
      ,'999'), 'MM'), 'Month')) 

结果将理想2016DecemberJanuary,但它返回像2016December1721395anuar12016May17211181une

看起来问题在于逻辑上说明了从12月到1月的转变。任何想法是什么引起的?谢谢! `

回答

1

select to_char(now(),'January');回报像2457729anuar6因为

的J - 儒略日(整数日以来11月24日,4714 BC在午夜UTC) 。
ÿ - 年份的最后一位

Link.

您需要引用格式串串,以防止其解释为占位符:select to_char(now(),'YY, "January"');