复杂环境中的日期和日期时间问题

时间:2012-05-29 12:52:54

标签: mysql

在我将一个大型csv导入表格后,我遇到了一个主要问题: csv中日期的格式是DD MM YYYY,当我尝试将其导入日期/日期时,它将无法正常工作。好吧,我用CHAR类型而不是DATE / DATETIME来做它,它到目前为止工作。 (我的例子:VisitTime CHAR(10))

  

但这是问题,CHAR中的数据我无法连接从2列创建一个datetime列(我的例子是:VisitTime CHAR(10)应该是DATE但是没有工作,因为它是错误的格式DD MM YYYY和HourTime是TIME。       底线:我需要另一个表VisitTimeandHour DATETIME中的列,该列来自于VisitTIME CHAR(10)和HourTime TIME的串联。       一个解决方案可能是我所谈论的VARCHAR的所有列,这是我认为没有问题,但我想坚持日期和日期时间:)       等待解决方案,提前谢谢。

如果我错了,请纠正我,但如果我尝试导入变量然后转换它就可以了吗?顺便说一下,需要从csv转换的日期示例是:22/04/2005 )代码:

  

SET @ var1 = NULL;   加载数据infile'xxxx / xxx / xxx / xxx / xxx'       进入表vizite_intermtest       字符集utf8       字段以','结尾       以'\ n'结尾的行       忽略1行       (@ VAR1,OraIntrare,NumePacient,PrenumePacient,NumeMedic,PrenumeMedic,内阁)       SET VisitTime = STR_TO_DATE(@ var1,'%d /%m /%y');

如果我试试这个,它说:截断的inccorect值22/04/2005(我想要导入的VisitTime列是CHAR类型)

  

LE:它可以导入变量并转换它但是我把/ / /放在它们之间它仍然给我时间格式 - - - ...任何想法?

1 个答案:

答案 0 :(得分:1)

您应该坚持使用DATE / DATETIME字段,但要告诉MySQL如何解释传入的数据。我不确定您是如何导入数据的,但将字符串解释为日期的函数是STR_TO_DATE

STR_TO_DATE( '01 02 2003', '%d %m %Y' )

有关详细信息,请参阅以下内容: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date