我已经对此进行了一周的研究,但仍然一无所获。我有一个 txt 文件,它通过 php 加载到“temploadsi”表中。文本文件将始终包含数据库中已有的旧数据,因此我只需要"new"数据。我的想法是有一个加载表“temploadsi”,然后比较时间戳并仅将"new"数据导入表“tempdatasi”。问题是时间戳列的格式类似于“MM/DD/YYYY HH:MM:SS”,并且不会进入 mySQL 日期时间字段。因此我将其设置为文本字段。我想将文本转换为日期时间字段,如“YYYY-MM-DD HH:MM:SS”。我查看了 STR_TO_DATE 和 DateTime 函数,但无法更新“temploadsi”。大家能帮帮忙吗?
最佳答案
您更新字段失败的原因是因为您的数据时间是 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
所以如果你想更新你的字段,你可以使用这个查询
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
数据类型。
关于mysql - 将字符串更改为日期时间,然后将数据复制到新表并进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13810955/