1

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

4

2 回答 2

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

请参阅 SQLFiddle 现场演示

所以如果你不想更新你的字段,你可以使用这个查询

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数据类型。

于 2012-12-10T23:25:17.150 回答
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

于 2012-12-10T23:26:45.647 回答