【问题标题】:date and datetime issues in a complicated context复杂上下文中的日期和日期时间问题
【发布时间】:2012-06-03 16:50:56
【问题描述】:

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

但这里是问题,我无法连接 CHAR 内的数据以从 2 列创建日期时间列(我的示例是:VisitTime CHAR(10) 应该是DATE 但由于格式错误 DD MM YYYY 和 HourTime(即 TIME)而无法正常工作。 底线: 我需要另一个表 VisitTime 和 Hour DATETIME 中的一列,它是由 VisitTIME CHAR(10) 和 HourTime TIME 的串联产生的。 一个解决方案可能是制作我谈到 VARCHAR 的所有专栏,我认为没问题,但我想坚持使用日期和日期时间 :) 等待解决方案,在此先感谢。

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

SET @var1 = NULL; 在文件'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');

如果我尝试这样做,它会说:截断错误值 22/04/2005(我想在其中导入的 VisitTime 列是 CHAR 类型)

LE:它可以导入一个变量并转换它,但尽管我把///放在它们之间,它仍然给我时间格式 - - - ...有什么想法吗?

【问题讨论】:

    标签: mysql


    【解决方案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

    【讨论】:

    • 也许如果我设置一个变量并从 csv 导入,然后设置它并将其转换为正确的日期类型的日期可能会起作用?
    • 你的帖子有点帮助我挖掘别的东西,最后通过我在那里发布的方法解决了。但它并没有用 / / / 导入到我的确切格式,它是 - - - 如果可以的话,给出上面的定义可能会有所帮助?
    • 有点猜想,但我认为您使用的是 %y 而不是 %Y - 它区分大小写,因为 %y 是两位数年份,而 %Y 是四位数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    相关资源
    最近更新 更多