Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL数据类型格式化函数_Postgresql_Type Conversion_Date Formatting - Fatal编程技术网

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'