【问题标题】:SQL CHANGE DATE FORMAT IN BULKSQL批量更改日期格式
【发布时间】:2015-04-04 11:27:21
【问题描述】:

我有一个包含数百个字段的数据库,但我的数据结构错误。目前是英国格式如下:

d/m /y
01/01/85
01/01/96
23/12/87

将日期批量更改为年/月/日的 sql 标准的最有效方法是什么

eg.
02/01/85 --> 1985/01/02

【问题讨论】:

标签: mysql sql database


【解决方案1】:
  1. 在您的表中创建一个新的DATE 类型列:

    ALTER TABLE myTable ADD newColumn DATE;
    
  2. 使用 MySQL 的 STR_TO_DATE() 函数将现有值解析到新列中:

    UPDATE myTable SET newColumn = STR_TO_DATE(oldColumn, '%d/%m/%y');
    
  3. 更改您的代码库以使用新列。如果这不能立即发生,您可以定义 BEFORE INSERTBEFORE UPDATE triggers 以保持新列与旧列一致:

    CREATE TRIGGER myTable_bi BEFORE INSERT ON myTable FOR EACH ROW
      SET NEW.newColumn = STR_TO_DATE(oldColumn, '%d/%m/%y');
    
    CREATE TRIGGER myTable_bu BEFORE UPDATE ON myTable FOR EACH ROW
      SET NEW.newColumn = STR_TO_DATE(oldColumn, '%d/%m/%y');
    
  4. 删除旧列:

    ALTER TABLE myTable DROP oldColumn;
    

【讨论】:

    【解决方案2】:

    select date_format(date, '%Y-%m-%d') 用这个把它改成需要的格式。我用过date_format函数。您可以获取更多关于date_formathere的信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 2021-09-01
      • 1970-01-01
      • 2022-07-08
      • 2022-10-13
      • 1970-01-01
      • 2019-12-06
      相关资源
      最近更新 更多