如何在R中将CSV文件内的14位数字格式转换为Ymd日期格式
14位数字日期转年-月-日格式解决方案
下面分不同常用工具场景给出可直接使用的处理方案:
Python(Pandas处理数据集场景)
- 处理逻辑:先将数字格式的日期转为字符串,再用pandas内置日期工具解析后格式化
- 示例代码:
import pandas as pd # 请将下方的df替换为你的数据集变量名,date_col替换为存储14位日期的列名 df['date_col'] = df['date_col'].astype(str) df['formatted_date'] = pd.to_datetime(df['date_col'], format='%Y%m%d%H%M%S').dt.strftime('%Y-%m-%d')
注意:如果数据存在缺失值、非法异常值,可在to_datetime方法中添加
errors='coerce'参数,异常值会自动转为空值,不会中断执行。
Excel/WPS表格场景
- 处理逻辑:提取14位数字的前8位(对应年4位+月2位+日2位),再用文本格式函数转换为目标样式
- 示例公式(假设14位日期存储在A列):
=TEXT(LEFT(A1,8),"0000-00-00") - 输入完成后下拉填充整列即可得到转换后的日期。
SQL场景(以MySQL为例)
- 查询时临时转换的语句示例,假设表名为test_table,14位日期列名为date_num:
SELECT DATE_FORMAT(STR_TO_DATE(date_num, '%Y%m%d%H%i%s'), '%Y-%m-%d') AS formatted_date FROM test_table;
- 需要落库存储转换后结果的语句示例:
-- 新增字段存储格式化后的日期 ALTER TABLE test_table ADD COLUMN formatted_date DATE; -- 批量更新字段值 UPDATE test_table SET formatted_date = DATE_FORMAT(STR_TO_DATE(date_num, '%Y%m%d%H%i%s'), '%Y-%m-%d');
内容的提问来源于stack exchange,提问作者Patric Sommer
相关产品推荐
相关产品推荐

