You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何将int类型的last_reviews列转换为date类型或创建对应date列

MySQL下Airbnb数据int类型时间列转date及date列创建方案

现有int类型last_reviews列转date类型

首先确认你的int列存储的内容格式,按对应方式处理:

  • 存储内容为10位秒级Unix时间戳
    1. 先校验转换结果是否符合预期:
      SELECT last_reviews, FROM_UNIXTIME(last_reviews, '%Y-%m-%d') AS converted_date FROM 你的表名 LIMIT 10;
    2. 校验无误后新增临时date列存储转换后数据:
      ALTER TABLE 你的表名 ADD COLUMN tmp_last_reviews DATE;
    3. 写入转换后的数据:
      UPDATE 你的表名 SET tmp_last_reviews = FROM_UNIXTIME(last_reviews, '%Y-%m-%d');
    4. 确认数据全部正确后,替换原有列:
    ALTER TABLE 你的表名 DROP COLUMN last_reviews;
    ALTER TABLE 你的表名 CHANGE COLUMN tmp_last_reviews last_reviews DATE;
    
  • 存储内容为13位毫秒级Unix时间戳
    转换时先将数值除以1000转成秒级再处理,其余步骤同上:
    FROM_UNIXTIME(last_reviews / 1000, '%Y-%m-%d')
  • 存储内容为YYYYMMDD格式的数字(比如20240520代表2024年5月20日)
    用STR_TO_DATE函数转换即可,其余步骤同上:
    STR_TO_DATE(last_reviews, '%Y%m%d')

注意:转换前务必先备份全表数据,避免转换逻辑错误导致数据丢失,备份命令参考:CREATE TABLE 你的表名_bak AS SELECT * FROM 你的表名;

直接创建date类型的last_reviews列

  • 建表时直接指定字段类型:
CREATE TABLE airbnb_listings (
  id INT PRIMARY KEY AUTO_INCREMENT,
  listing_name VARCHAR(255) NOT NULL,
  -- 其他业务字段
  last_reviews DATE COMMENT '最新评论日期'
);
  • 已存在的表新增date类型的last_reviews列:
    ALTER TABLE 你的表名 ADD COLUMN last_reviews DATE COMMENT '最新评论日期';

内容的提问来源于stack exchange,提问作者Jenny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:45:04