MySQL时间格式转换异常:文件导入时无法识别AM/PM
解决MySQL导入带AM/PM的毫秒时间格式问题
你的问题出在时间格式符的选择上:%H是24小时制的小时标识,而你的时间字符串包含AM/PM标记,必须用12小时制的%h来匹配,再结合%p才能正确解析上午/下午信息。
修改后的完整代码
DROP TABLE IF EXISTS temp; CREATE TABLE temp LIKE messages; LOAD DATA INFILE 'C:/xampp/htdocs/gdxg/test_uploads/test.txt' INTO TABLE temp FIELDS TERMINATED BY '\t' ENCLOSED BY '"' LINES TERMINATED BY '\n' (@Time, State, Name, Pri, Value) SET Time = STR_TO_DATE(@Time, '%m/%d/%y %h:%i:%s.%f %p'); SELECT * FROM temp LIMIT 10;
关键修改点说明
- 把原来的
%H替换成%h:%h专门用于匹配12小时制的小时数(01-12),能和AM/PM标记完美配合 - 保留
%p来识别时间字符串里的AM/PM标识 - 去掉了字段列表末尾多余的逗号(
Value,→Value),避免触发语法错误
这样修改后,MySQL就能正确解析05/20/16 01:54:52.797 AM这类格式的时间字符串,不会再出现解析结果为NULL的情况。
内容的提问来源于stack exchange,提问作者Anas Ibrahim
相关产品推荐
相关产品推荐

