CSV中数据库日期格式异常求助:科学计数法转格式显示######
解决CSV中日期格式变为科学计数法及显示####的问题
方法一:导出CSV时提前规避
从数据库导出CSV时,直接把日期列按文本格式处理:
- 手动导出的话,给每个日期值加上英文双引号(例如
"20221208121006"),确保Excel等工具识别为文本,不会自动转成科学计数法。 - 用脚本导出(比如Python),强制指定日期列类型为字符串:
import pandas as pd # 读取数据库数据 df = pd.read_sql("SELECT your_date_column FROM your_table", your_db_connection) # 转换为字符串类型 df['your_date_column'] = df['your_date_column'].astype(str) # 导出CSV,给字符串列加引号避免格式转换 df.to_csv('result.csv', index=False, quoting=1)
方法二:修复已生成的CSV文件
- 先打开文本编辑器(Notepad++、VS Code都行)查看CSV内容,确认日期值是否还是完整的14位数字串——如果已经变成科学计数法,说明精度已丢失,只能重新从数据库导出。
- 用Excel的「数据导入」功能正确读取:
- 打开Excel,点击「数据」选项卡 → 「自文本/CSV」,选择目标CSV文件。
- 在导入向导的「数据类型检测」步骤,找到日期列,将其数据格式设置为文本,完成导入后,日期会以完整数字串显示,再设置单元格格式为
yyyymmddhhmmss即可正常显示。
方法三:修复Excel中已导入的错误数据
如果已经把CSV导入Excel且显示为科学计数法:
- 先将单元格格式改为「文本」,若数据量小,双击每个单元格即可恢复完整数字串;
- 数据量大的话,用公式恢复:假设错误数据在A1单元格,在空白单元格输入
=TEXT(ROUND(A1,0),"00000000000000"),得到完整14位数字后,再设置格式为yyyymmddhhmmss。 - 注意:如果科学计数法已经导致末尾数字被四舍五入丢失精度,这个方法无效,必须重新导出。
内容的提问来源于stack exchange,提问作者user12077330
相关产品推荐
相关产品推荐

