将混合格式(YYYYMMDD、DD-MMM-YY)日期列转换为DD/MM/YYYY格式
统一转换两种日期格式为DD/MM/YYYY
以下是几种常用工具的实现方案,适配你的两种日期格式(YYYYMMDD 和 DD-MMM-YY):
Python(Pandas)
利用Pandas的日期处理功能自动识别格式,再统一输出目标格式:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'Birth_Day': ['20021019', '20021024', '24-Oct-02', '26-Oct-02'] }) # 转换并格式化日期 df['Birth_Day'] = pd.to_datetime(df['Birth_Day']).dt.strftime('%d/%m/%Y') # 输出结果 print(df)
运行后会直接得到 DD/MM/YYYY 格式的日期列。
SQL(以MySQL为例)
通过判断字符串长度区分格式,分别解析后统一格式化:
SELECT CASE WHEN LENGTH(Birth_Day) = 8 THEN DATE_FORMAT(STR_TO_DATE(Birth_Day, '%Y%m%d'), '%d/%m/%Y') WHEN LENGTH(Birth_Day) = 9 THEN DATE_FORMAT(STR_TO_DATE(Birth_Day, '%d-%b-%y'), '%d/%m/%Y') END AS Birth_Day FROM your_table;
- 若使用SQL Server,可替换为
CONVERT和TRY_CONVERT函数,逻辑类似:
SELECT CASE WHEN LEN(Birth_Day) = 8 THEN FORMAT(CONVERT(date, Birth_Day, 112), 'dd/MM/yyyy') ELSE FORMAT(CONVERT(date, Birth_Day, 6), 'dd/MM/yyyy') END AS Birth_Day FROM your_table;
Excel
使用公式判断格式并转换,假设日期在A列,在B2单元格输入:
=IF(LEN(A2)=8,TEXT(DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)),"dd/mm/yyyy"),TEXT(DATEVALUE(A2),"dd/mm/yyyy"))
下拉填充即可完成整列转换。
内容的提问来源于stack exchange,提问作者Connor Hill
相关产品推荐
相关产品推荐

