将字符串更改为datetime,然后将数据复制到新表并进行比较

时间:2012-12-10 23:15:30

标签: mysql sql datetime

我已经研究了一个星期,但仍然没有运气。我有一个txt文件,加载到&#temp; temploadsi'表通过PHP。文本文件将始终具有已存在于数据库中的旧数据,因此我只需要" new"数据。我的想法是有一个装载表& temploadsi'然后比较时间戳并仅导入" new"数据进入表格' tempdatasi'。问题是时间戳列的格式类似于' MM / DD / YYYY HH:MM:SS'并且不会进入mySQL datetime字段。因此我将它设置为文本字段。我想将文本转换为日期时间字段,例如' YYYY-MM-DD HH:MM:SS'。我查看了STR_TO_DATE和DateTime函数但无法更新' temploadsi'。你能帮忙吗?

2 个答案:

答案 0 :(得分:2)

您未能更新字段的原因是您的数据时间24:59:59无效。我认为最长时间是23:59:59,所以为了将其转换为日期,您需要使用以下格式

SELECT DATE_FORMAT(STR_TO_DATE(datetime,'%m/%d/%Y %x:%x:%x'), '%Y-%m-%d 23:59:59')
FROM table1

See SQLFiddle Live Demo

因此,如果您要更新字段,可以使用此查询

UPDATE tableName
SET your_columnname = DATE_FORMAT(STR_TO_DATE(your_columnname, '%m/%d/%Y %x:%x:%x'), '%Y-%m-%d 23:59:59')

并且此查询假定您要更新的列具有VARCHAR数据类型。

答案 1 :(得分:0)

像Str_to_date('12 / 10/2012 23:59:59','%m /%d /%y%h:%i:%s')

不知道为什么你找不到这个

[Mysql帮助] http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date