fix_user_day_statistics_timestamp_format.sql 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. -- 修复 user_day_statistics 表的 created_at 和 updated_at 时间格式
  2. -- 将 TIMESTAMP 类型改为 DATETIME 类型,确保时间格式为 2026-01-12 12:22:22
  3. -- 执行日期: 2026-01-29
  4. USE media_manager;
  5. -- 步骤1: 备份现有数据(建议先备份,以防万一)
  6. -- CREATE TABLE user_day_statistics_backup_20260129 AS SELECT * FROM user_day_statistics;
  7. -- 步骤2: 设置会话时区为东八区(确保时间转换正确)
  8. SET time_zone = '+08:00';
  9. -- 步骤3: 修改 created_at 字段类型为 DATETIME
  10. -- MySQL 会自动将 TIMESTAMP 转换为 DATETIME,保持时间值不变
  11. -- 先移除默认值约束(MySQL 8.0+ 需要)
  12. ALTER TABLE user_day_statistics
  13. MODIFY COLUMN created_at DATETIME NULL;
  14. -- 重新添加默认值约束
  15. ALTER TABLE user_day_statistics
  16. MODIFY COLUMN created_at DATETIME DEFAULT CURRENT_TIMESTAMP;
  17. -- 步骤4: 修改 updated_at 字段类型为 DATETIME
  18. ALTER TABLE user_day_statistics
  19. MODIFY COLUMN updated_at DATETIME NULL;
  20. -- 重新添加默认值约束
  21. ALTER TABLE user_day_statistics
  22. MODIFY COLUMN updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
  23. -- 步骤5: 验证修改结果
  24. -- 查看表结构
  25. DESCRIBE user_day_statistics;
  26. -- 查看几条数据的时间格式(应该显示为 2026-01-12 12:22:22 格式)
  27. SELECT
  28. id,
  29. account_id,
  30. record_date,
  31. DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s') AS created_at_formatted,
  32. DATE_FORMAT(updated_at, '%Y-%m-%d %H:%i:%s') AS updated_at_formatted,
  33. created_at,
  34. updated_at
  35. FROM user_day_statistics
  36. ORDER BY id DESC
  37. LIMIT 10;