如何在postgreSQL(提供的BigQuery示例)中将“ 2020-06-15”转换为“ 2020-06”?

时间:2020-06-16 15:51:14

标签: postgresql

所需的输出:将日期2020-06-15更改为读取2020-06的字符串

在BigQuery StandardSQL中,以下方法有效

SELECT
CONCAT( 
      CAST( EXTRACT(YEAR FROM date) ) AS STRING, '-', CAST( EXTRACT(MONTH FROM date) AS STRING)
      ) as year_date
FROM 
table

这将在BigQuery中为您提供“ 20202-06”。 在PostgreSQL中,出现以下错误

错误:函数concat(字符变化,“未知”,字符变化)不存在

我已经尝试过各种方法,但仍然无法获得正确的答案。 例如

concat(extract(year from date)::text, '-', extract(month from date)::text ) as year_date
concat(cast(extract(year from date) as varchar(16)), '-', cast(extract(month from date) as varchar(16)) ) as year_date,

但是,我仍然遇到相同的错误吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

使用to_char设置日期,时间戳和数字的格式。

# select to_char('2020-06-15'::date, 'YYYY-MM');
 to_char 
---------
 2020-06

答案 1 :(得分:0)

类似的东西:

SELECT
CONCAT( 
      CAST( EXTRACT(YEAR FROM current_date)  AS varchar), '-', CAST( EXTRACT(MONTH FROM current_date) AS varchar)
      ) as year_date;
 year_date 
-----------
 2020-6