【发布时间】:2014-07-23 16:04:23
【问题描述】:
我正在使用带有 Sequel Pro 界面的 MySQL 数据库,并且是 SQL 新手。我正在尝试从 csv 文件导入数据,而我要导入的列之一是 datetime 类型。但是,我接收数据的格式是 mm/dd/yy hh:mm AM/PM 或 null。最初,我将列的类型修改为 varchar 以避免该问题,但现在我需要对数据执行一些日期函数,除非该列具有日期时间类型和格式,否则无法完成,所以我需要一种方法将传入的数据转换为正确的日期时间格式。
此外,不了解 SQL 或数据库的人将运行导入语句,因此最好让他们简单地单击文件 -- 导入,而不必在 mysql 命令行中输入任何复杂的内容。此外,在运行查询后,我需要以相同的格式导出数据(mm/dd/yy hh:mm AM/PM 或 null)。
以下是该列的一些示例值:
Completion Time
null
6/16/14 10:33 AM
null
null
6/16/14 13:03 PM
6/17/14 13:53 PM
6/18/14 14:38 PM
6/18/14 14:52 PM
6/19/14 13:13 PM
6/18/14 18:56 PM
6/18/14 19:02 PM
null
我收集的一个可能简单的解决方案可能不是一个好主意,从几个小时的谷歌搜索来看,将列类型保持为 varchar 然后以某种方式仅提取传入的 mm/dd/yy 部分数据,将其转换为正确的 MySQL 日期格式,然后执行我的日期函数。
无论如何,任何帮助将不胜感激。
【问题讨论】:
-
您必须转换传入日期,因为它不是 mysql 的正确可解析格式。它不能可靠地分辨出哪个部分是 mm,哪个是 dd。稍后可以使用此dev.mysql.com/doc/refman/5.5/en/… 重新转换输出
-
有没有办法设置存储过程或触发器来转换传入的日期?