PostgreSQL现有数据日期格式转换:dd-mm-yyyy转yyyy-mm
PostgreSQL 将 dd-mm-yyyy 格式转换为 yyyy-mm 格式
处理方式分两种情况,取决于你的字段类型:
1. 字段为字符串类型(varchar/text)
如果存储的是dd-mm-yyyy格式的字符串,需要先转换为PostgreSQL原生日期类型,再格式化为yyyy-mm:
基础写法
SELECT to_char(to_date(your_column, 'DD-MM-YYYY'), 'YYYY-MM') AS formatted_month FROM your_table;
to_date(your_column, 'DD-MM-YYYY'):按指定格式把字符串转成日期类型to_char(..., 'YYYY-MM'):将日期格式化为目标年月字符串
处理无效日期(PostgreSQL 12+)
如果存在格式不合法的字符串,用TRY_TO_DATE避免报错(无效值会返回NULL):
SELECT to_char(TRY_TO_DATE(your_column, 'DD-MM-YYYY'), 'YYYY-MM') AS formatted_month FROM your_table;
2. 字段为日期/时间类型(date/timestamp)
如果字段本身就是PostgreSQL的日期或时间类型,直接格式化即可:
SELECT to_char(your_column, 'YYYY-MM') AS formatted_month FROM your_table;
也可以用date_trunc截断到月份后再格式化,结果一致:
SELECT to_char(date_trunc('month', your_column), 'YYYY-MM') AS formatted_month FROM your_table;
内容的提问来源于stack exchange,提问作者MANOHAR N
相关产品推荐
相关产品推荐

