我正在研究一个Python系统,该系统接收平面文件并将其加载到MySQL数据库中。这些文件的格式可以更改。有些将包括date或datetime字段。我想使用MySQL的LOAD DATA命令将这些文件加载到它们相关的表中。问题是我永远不知道日期会以什么格式出现在我面前。例如,一个数据集可以将日期值格式化为6/11/2018 17:53,而另一个数据集可以将其格式化为11/Jun/2018 17:53。
Python提供了一个很好的实用程序,名为dateutil.parser.parse,它将使用这两个工具并找出它们都表示June 11, 2018 5:53 pm。MySQL是否有类似的功能,或者我必须知道输入格式并从中CAST数据才能使用它?
我试图避免编写Python程序来读取输入文件并在将其加载到DB之前调整每条记录上的日期。(顺便说一句,我担心的不是编码时间,而是执行时间)。
谢谢!
MySQL有一个可以猜测输入格式的日期解析器吗?
遗憾的是,它没有。
你有两个选择。
-
使用字符串存储日期(我强烈不建议)。在同一列中会有不同的日期格式,很难使用STR_TO_DATE()函数将其转换为日期。
-
使用Python实用程序dateutil.parser.parse.
即使你可能执行时间问题我建议使用Python工具。