PostgreSQL数据类型格式化函数
我有以下疑问。我需要一个像这样的输出PostgreSQL数据类型格式化函数,postgresql,type-conversion,date-formatting,Postgresql,Type Conversion,Date Formatting,我有以下疑问。我需要一个像这样的输出 ea_month case ea_year zone_id January 0 2013 4001 February 0 2013 4002 March 1 2013 4001 January 0 2014 4001 February 0 2014 4001 March
ea_month case ea_year zone_id
January 0 2013 4001
February 0 2013 4002
March 1 2013 4001
January 0 2014 4001
February 0 2014 4001
March 1 2014 4001
February 0 2014 4002
March 1 2014 4002
SELECT ea_month,CASE WHEN ea_month = (SELECT to_char(now(), 'Month')) THEN 1 ELSE 0 END,ea_year,zone_id FROM staging_ea.stg_circle_zone_billedamount_rollup
在我的表格中,我有一月、二月、三月形式的eau月值
运行上述查询后,我得到的结果集如下:
ea_month case ea_year zone_id
January 0 2013 4001
February 0 2013 4002
March 0 2013 4001
January 0 2014 4001
February 0 2014 4001
March 0 2014 4001
February 0 2014 4002
March 0 2014 4002
有人能告诉我哪里出了问题吗?它用于PostgreSQL查询。这是由
to_char()
函数在月份名称中填充空格造成的。这可以通过在结果上应用trim()
或在格式掩码中使用FM
修饰符来解决:
SELECT ea_month,
CASE
WHEN ea_month = to_char(current_date, 'FMMonth') THEN 1
ELSE 0
END,
ea_year,
zone_id
FROM staging_ea.stg_circle_zone_billedamount_rollup;
有关详细信息,请参阅手册:您不需要在
案例中选择语句<代码>当ea_month=to_char(现在是(),'month')时,那么…
应该这样做。当然,这取决于环境设置:to_char()
函数返回的月份名称取决于当前用户的区域设置。我也尝试过,但没有选择,但没有效果。您确定to_char()吗
实际返回的是英语而不是其他语言的“一月”
?SELECT to_char(now(),'Month')
自己返回什么?SELECT to_char(now(),'Month')返回'March'