mysql - 如何将 MySQL 列从 VARCHAR 更改为日期时间并同时转换数据?

标签 mysql sql

我有一大组数据,其中的 varchar 列包含不寻常的日期时间格式。

如何既转换6000+行的数据,又转换列的类型?

我可以看到可以用这个转换类型:

ALTER TABLE <tblName> MODIFY <columnName> date time;

但我不知道如何保留数据并同时对所有行执行此操作。

我目前拥有的示例日期是:

Mon, 23 Sep 2013 07:01:00 GMT

按照@Mihai 的回答

UPDATE rns
SET rns.`rns_pub_date` = STR_TO_DATE(rns_pub_date,"%a, %d %b %Y")

最佳答案

您不会一次完成所有操作。您一步一步地执行这些步骤。

  1. 添加新列。
  2. 从旧列更新新列。这可能需要多次查询,具体取决于您的 varchar 列中有多少种格式。
  3. 放弃你的旧专栏。
  4. 重命名您的新列。

关于mysql - 如何将 MySQL 列从 VARCHAR 更改为日期时间并同时转换数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19875348/

相关文章:

sql - NOT LIKE 和 LIKE 不返回相反的结果

mysql - 将数据从表 A 插入表 B WHERE(条件)& SET Col.a = "xxx"

mysql - SQL查询查询

sql - 将行转换为 Oracle 10g 中的列

php - 大型数据库的性能,更快的方法 : finding value with php or sql?

php - SQL 的日期函数未按预期工作

mysql - mysql中的一条记录自引用

php - mysql select query 在多列中搜索一个词

mysql - 使用 SQL concat 和 coalesce 在值为 null 时显示

php - 错误: Database table jobs for model Job was not found