2016-12-06 50 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"');