Access 2016导入CSV时StartTime时间字段出现Type Conversion错误求助
CSV导入Access时StartTime时间类型转换报错解决方案
方案1:导入前CSV强制格式化时间文本(避免Excel自动还原格式)
- 不要用Excel直接修改CSV后保存,Excel会自动覆盖自定义时间格式导致设置失效。改用记事本打开CSV,给StartTime字段的所有值套上英文双引号,比如把
7:53:00 PM改成"7:53:00 PM",保存后直接导入Access,文本包裹后Access会优先识别时间格式而非纯文本。 - 如果数据量太大手动修改麻烦,可运行以下Python脚本一键处理:
import csv with open('源文件.csv', 'r', encoding='utf-8') as f_in, open('处理后.csv', 'w', encoding='utf-8', newline='') as f_out: reader = csv.DictReader(f_in) writer = csv.DictWriter(f_out, fieldnames=reader.fieldnames, quoting=csv.QUOTE_ALL) writer.writeheader() for row in reader: writer.writerow(row)
- 处理后的CSV不要用Excel打开修改,直接导入Access即可。
方案2:调整Access导入规则规避转换错误
- 导入时点击高级按钮进入导入规范设置,找到StartTime字段,如果要直接导入为Date/Time类型,在
日期/时间格式栏手动填写h:nn:ss AM/PM,注意Access时间格式中分钟用nn而非mm(mm会被识别为月份),这是该类报错最常见的诱因。 - 也可临时将StartTime字段的
数据类型设置为文本,先完成导入再做类型转换。
方案3:导入后临时字段转换兜底
- 先按文本类型导入StartTime字段到Access,新增一个Date/Time类型的字段
StartTime_New,执行以下更新查询完成转换:
UPDATE 你的表名 SET StartTime_New = CDate(StartTime);
- 验证所有值转换无问题后,删除原StartTime字段,将
StartTime_New重命名为StartTime即可。
内容的提问来源于stack exchange,提问作者Shaves
相关产品推荐
相关产品推荐

