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

Posted

技术标签:

【中文标题】将访问日期时间类型转换为 mysql 类型【英文标题】:converting access datetime type to mysql type 【发布时间】:2008-11-06 14:32:35 【问题描述】:

我正在尝试使用以下字符串将访问日期时间字段转换为 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 字段,我不确定在导入之前还是之后这样做会更容易。

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

您的函数语法已关闭。

试试:

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');

【讨论】:

这不是一个 Access 问题,后者在 Access 中不起作用,因为没有名为“str_to_date”的日期格式化函数。【参考方案2】:

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

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

至于访问,它看起来喜欢将上面的内容更改为使用 . / 应该在哪里工作。

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于将访问日期时间类型转换为 mysql 类型的主要内容,如果未能解决你的问题,请参考以下文章

SQL-将BIGINT(20)转换为日期时间数据类型

mysql记录根据日期字段倒序输出

怎么将mysql查询的日期类型转为yyyy-MM-dd

vb net中怎么样将字符串类型转换成日期型

MySQL - 将日期字符串更改为日期类型?

如何将JAVA DATE类型的日期 转换成指定格式类型的 (如:YYYY-MM-DD) 的 DATE类型数据?