I want to create a date in the format YYYY-MM
using postgresSQL
.
The month should always be two digits.
For example if it is August 2020 the result should be 2020-08 and not 2020-8.
Therefore, I tried to add the 0
in front of the 8
using a CASE
statement looking like this:
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
However, with this query I get error:
ERROR: CASE types integer and text cannot be matched LINE 3: THEN CONCAT('0',DATE_PART('month', date '2020-08-01 00:00:00...
I have no clue how I need to modify the query to make it work.
Do you have any idea?
Advertisement
Answer
Use to_char()
:
General
select to_char(dateval, 'YYYY-MM')
Example DB-Fiddle
SELECT to_char(date '2020-08-01 00:00:00','YYYY-MM')