【问题标题】:How to change a column's datatype from text to datetime in mysql?如何在mysql中将列的数据类型从文本更改为日期时间?
【发布时间】:2021-11-03 06:50:54
【问题描述】:

我正在尝试这个,但它不起作用。我的原始数据格式为本月/日期/年(例如:2/24/20

UPDATE Packages SET `date` = STR_TO_DATE(`date`, '%Y-%m-%d %T'); 
ALTER TABLE Packages MODIFY COLUMN `date` DATETIME;

【问题讨论】:

    标签: mysql sql date datetime


    【解决方案1】:

    您应该创建一个新的日期时间列并使用 STR_TO_DATE 和文本日期填充它:

    ALTER TABLE Packages ADD COLUMN new_date DATETIME;
    UPDATE Packages SET new_date = STR_TO_DATE(date, '%Y-%m-%d %T');
    

    如果您愿意,也可以删除原来的 date 列,然后重命名新列:

    ALTER TABLE Packages DROP COLUMN date;
    ALTER TABLE Packages RENAME COLUMN new_date TO date;
    

    【讨论】:

      【解决方案2】:

      我的原始数据的格式类似于这个月/日期/年(例如:2/24/20)

      使用与您当前格式匹配的解析模式的函数(函数需要用于解析的模式,而不是数据必须转换为的模式):

      STR_TO_DATE(varchar_column, '%m/%e/%y')
      

      寻找完整的模式描述there

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-16
        • 1970-01-01
        • 2020-07-04
        • 1970-01-01
        • 2022-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多