将访问日期时间类型转换为mysql类型

时间:2008-11-06 14:32:35

标签: mysql ms-access csv

我正在尝试使用以下字符串将访问日期时间字段转换为mysdl格式:

select str_to_date('04/03/1974 12:21:22', '%Y %m %d %T');

虽然我没有收到错误,但我没有得到预期的结果,而是得到了这个:

+---------------------------------------------------+
| str_to_date('04/03/1974 12:21:22', '%Y %m %d %T') |
+---------------------------------------------------+
| NULL                                              |
+---------------------------------------------------+
1 row in set, 1 warning (0.01 sec)

访问日期采用以下格式:

06.10.2008 14:19:08

我不确定我错过了什么。

作为一个附带问题,我想知道在导入csv文件之前是否可以更改列中的数据?我想用自己的日期替换insert_date和update_date字段,我不确定在导入之前或之后是否更容易这样做。

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

您的函数语法已关闭。

尝试:

select str_to_date('04/03/1974 12:21:22', '%m/%d/%Y %T');

第二个参数告诉函数日期部分在字符串中的位置。

对于您的访问问题:

select str_to_date('06.10.2008 14:19:08', '%m.%d.%Y %T');

答案 1 :(得分:1)

首先,显示的str_to_date不起作用,因为格式与字符串不匹配。 '%Y%m%d%T'如果日期类似'1974 04 03 12:21:22'那样会起作用

正确的格式应为'%m /%d /%Y%T'(月/日/年时间)。或'%d /%m /%Y%T'(日/月/年)。

至于访问,它看起来改变上面使用。 /应该在哪里工作。

答案 2 :(得分:0)

我不清楚你使用的是哪一端,Access端还是MySQL端,尽管看起来你正试图用MySQL的功能来解决它​​。如果您的问题是您从Access / Jet导出CSV并且它不是预期的格式,那么您可能需要修复从Access导出的CSV导出以使用MySQL理解的格式。

如果您能够使用Access / Jet数据库,为MySQL数据库设置ODBC DSN也可能更简单,然后在Access中创建链接表,然后您可以直接从中添加数据将表访问到MySQL表中。然后,MyODBC驱动程序将为您处理数据转换。