mysql - 将字符串更改为日期时间,然后将数据复制到新表并进行比较

标签 mysql sql datetime

我已经对此进行了一周的研究,但仍然一无所获。我有一个 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

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

关于mysql - 将字符串更改为日期时间,然后将数据复制到新表并进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13810955/

相关文章:

Python 2.7 从 2 个月前获取月份(即从今天获取 '05')

php - MySQL 从另一个表插入,其中字段不为空

php - 查询存储在另一个表上的用户首选项的有效方法

java - 与sql like 和bind 精确匹配

SQL 将重复行计数为单个

带有超大 IN 子句的 SQL Server 查询会导致事件监视器中出现大量查询

php - 错误更新限制mysql

python - 如何使用python传递两个或多个列表并将其存储到mysql数据库

scala - DateTimeFormat解析错误:格式无效: “2018-04-02T21:57:05.091Z”在 “T21:57:05.091Z”处格式错误

mysql - 如何在mysql中获取日期时间以及附加的GMT?