MySQL:使用 time/dates 和时区信息加载数据

MySQL: LOAD DATA with time/dates with timezone information

我的文本文件带有 Fri, 05 Jan 2013 05:50:00 +0800 形式的时间戳。我不知道如何将文件读入我的 MySQL 数据库。 Fri, 05 Jan 2013 05:50:00'%a, %d %M %Y %H:%i:%s' 一起工作得很好,但 +xx00 会把所有东西都扔掉。好像不是supported.

有没有办法按原样导入文本文件,或者我需要先对其进行预处理以处理时区信息。

有点复杂,但答案是肯定的。

  1. 首先,你必须把你的时区信息从+0800替换成+08:00,因为MySQL只支持这种偏移表达式。

  2. 使用STR_TO_DATE获取标准日期时间:STR_TO_DATE(SUBSTRING_INDEX(your_time_str, ' ', 5), '%a, %d %M %Y %H:%i:%s');

  3. [可选,如果需要]将标准时间字符串从your_time_str中描述的时区转换为服务器时区:CONVERT_TZ(standard_time_str, SUBSTRING_INDEX(your_time_str, ' ', -1), SELECT @@global.time_zone)

所以最后的陈述是这样的:

CONVERT_TZ(STR_TO_DATE(SUBSTRING_INDEX(your_time_str, ' ', 5), '%a, %d %M %Y %H:%i:%s'), SUBSTRING_INDEX(your_time_str, ' ', -1), SELECT @@global.time_zone)