如何将dd-MON-yyyy格式的列转换为dd-mm-yyyy格式
PERIODE列dd-MON-yyyy格式转dd-mm-yyyy解决方案
修改格式不生效的核心原因通常是该列被识别为字符串类型,而非原生日期类型,需要先完成类型转换再做格式化操作,以下是不同常用场景的实现方法:
1. SQL环境
Oracle
SELECT TO_CHAR(TO_DATE(PERIODE, 'DD-MON-YYYY'), 'DD-MM-YYYY') AS PERIODE_NEW FROM 你的表名;
MySQL
需先设置语言参数匹配英文月份缩写,再转换:
SET lc_time_names = 'en_US'; SELECT DATE_FORMAT(STR_TO_DATE(PERIODE, '%d-%b-%Y'), '%d-%m-%Y') AS PERIODE_NEW FROM 你的表名;
PostgreSQL
SELECT TO_CHAR(TO_DATE(PERIODE, 'DD-MON-YYYY'), 'DD-MM-YYYY') AS PERIODE_NEW FROM 你的表名;
2. Excel/WPS表格环境
操作法
- 选中PERIODE列,依次点击「数据」-「分列」-两次下一步-列数据格式选择「日期」,下拉选「YMD」点击完成,先将列转为日期类型
- 右键选中PERIODE列,选择「设置单元格格式」-「自定义」,类型输入
dd-mm-yyyy确认即可
公式法
如果列无法转为日期类型,直接用公式转换:
=TEXT(DATE(RIGHT(PERIODE,4),MATCH(MID(PERIODE,4,3),{"JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"},0),LEFT(PERIODE,2)),"dd-mm-yyyy")
3. Python Pandas环境
import pandas as pd # 转换为日期类型 df['PERIODE'] = pd.to_datetime(df['PERIODE'], format='%d-%b-%Y') # 格式化为目标字符串格式 df['PERIODE'] = df['PERIODE'].dt.strftime('%d-%m-%Y')
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

