PostgreSQL在施法后将字符错误地解释为数字
我一直在按照这个示例将日期转换为月份名称。然而,当我有一个两个月的转换窗口时,第二个月的名字在一些字母的解释中变得支离破碎PostgreSQL在施法后将字符错误地解释为数字,sql,postgresql,date,casting,netezza,Sql,Postgresql,Date,Casting,Netezza,我一直在按照这个示例将日期转换为月份名称。然而,当我有一个两个月的转换窗口时,第二个月的名字在一些字母的解释中变得支离破碎 FISCAL_YEAR || TO_CHAR(TO_TIMESTAMP(to_Char(month(DATE_VAR),'999'), 'MM'), 'Month' || TO_CHAR(TO_TIMESTAMP(to_Char( case when month(D
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'))
理想的结果是2016年12月1日2016DecemberJanuary
,但它返回类似于2016December1721395anuar1
或2016May17211181une
问题似乎出在解释从12月到1月转变的逻辑上。原因是什么?select to_char(now(),'一月')
返回类似于2457729anuar6
的内容,因为
J-朱利安日(自公元前4714年11月24日午夜UTC起的整数天)
.Y-年度的最后一位数字 您需要在格式字符串中引用字符串,以防止将其解释为占位符:
select to_char(now(),'YY,'January')代码>选择to_char(现在(),'一月')
返回类似于2457729anuar6
的内容,因为
J-朱利安日(自公元前4714年11月24日午夜UTC起的整数天)
.
Y-年度的最后一位数字
您需要在格式字符串中引用字符串,以防止将其解释为占位符:select to_char(now(),'YY,'January')代码>