Mysql 将字符串读取为日期时间

Mysql read string as datetime

您好,我正在使用 LOAD DATA INFILE 在 MySQL 中填充 table。

LOAD DATA INFILE 'test.txt'
INTO TABLE myTestTable
FIELDS TERMINATED BY '\t'
IGNORE 1 LINES;

除了我的数据中有一个日期时间列,该列的格式在日期和时间部分之间没有任何分隔符外,一切都很好。像这样:

SomeDateColumn
20050101081946

当我读入此内容时,MySQL 将所有日期替换为虚拟值。有没有办法让 MySQL 直接从文件中正确读取它?

谢谢!

您可以在 运行 LOAD DATA 时调用 STR_TO_DATE,并即时将文本日期转换为真正的日期:

LOAD DATA INFILE 'test.txt'
INTO TABLE myTestTable
FIELDS TERMINATED BY '\t'
IGNORE 1 LINES
(
    col1, col2, @var1     -- list out all columns here
)

SET SomeDateColumn = STR_TO_DATE(@var1, '%Y%m%d%h%i%s');