以 YYYY-MM 格式创建日期,并在案例月份< 10 中添加 0



我想使用postgresSQL创建格式为YYYY-MM的日期
月份应始终两位数
例如,如果是2020年8月,则结果应为2020-08而不是2020-8


因此,我尝试使用CASE语句在8前面添加0,如下所示:

DB Fiddle

SELECT
(CASE WHEN DATE_PART('month', date '2020-08-01 00:00:00') <10 
THEN CONCAT('0',DATE_PART('month', date '2020-08-01 00:00:00'))
ELSE 1 END) AS year_month_value

然而,通过此查询,我得到错误:

ERROR:  CASE types integer and text cannot be matched
LINE 3: THEN CONCAT('0',DATE_PART('month', date '2020-08-01 00:00:00...

我不知道我需要如何修改查询才能使其工作
你知道吗?

使用to_char():

常规

select to_char(dateval, 'YYYY-MM')

示例DB Fiddle

SELECT to_char(date '2020-08-01 00:00:00','YYYY-MM')

相关内容

最新更新