【问题标题】:How to add an offset to all timestamps/DATETIME in a MySQL database?如何为 MySQL 数据库中的所有时间戳/日期时间添加偏移量?
【发布时间】:2012-01-31 09:19:37
【问题描述】:

我有一些 MySQL 数据库有几个表,其中包含一些 DATETIME 列。我正在寻找一种方法来为整个数据库中的所有 DATETIME 列添加一些时间(比如一年)。

如果数据最初写入数据库时​​系统时间错误,这将很有用。

或者,就我而言

根据历史数据为应用程序创建最近的 DEMO 数据。

  • 有没有办法一次移动数据库中的所有 DATETIME 字段?
  • 如果不是,如何移动 ONE 表中所有条目的 DATATIME 列(即添加一些偏移量)?

感谢您的回答!

【问题讨论】:

  • 您是要永久移动值(即更新)还是要返回偏移的列值(即选择)?
  • 我想永久改变值!

标签: mysql datetime offset


【解决方案1】:
UPDATE table SET date_column = DATE_ADD(date_column, INTERVAL 1 YEAR);

这应该可以解决问题。

【讨论】:

    【解决方案2】:

    尝试使用INTERVAL类似关键字

    UPDATE table_name SET column_name = column_name + INTERVAL 1 unit
    

    或者可能是这个

    ADDTIME() 将 expr2 添加到 expr1 并返回结果。 expr1 是时间或日期时间表达式,而 expr2 是时间表达式。

    SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');
    

    单位值是这样的

    unit Value  Expected expr Format  
    MICROSECOND MICROSECONDS  
    SECOND  SECONDS  
    MINUTE  MINUTES  
    HOUR    HOURS  
    DAY         DAYS  
    WEEK    WEEKS  
    MONTH   MONTHS  
    QUARTER QUARTERS  
    YEAR    YEARS  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      • 2015-08-26
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多