Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为MySQL数据库中的所有时间戳/日期时间添加偏移量?_Mysql_Datetime_Offset - Fatal编程技术网

如何为MySQL数据库中的所有时间戳/日期时间添加偏移量?

如何为MySQL数据库中的所有时间戳/日期时间添加偏移量?,mysql,datetime,offset,Mysql,Datetime,Offset,我有一些MySQL数据库,它们有几个表,其中包括一些DATETIME列。我正在寻找一种方法,为整个数据库中的所有DATETIME列添加一些时间(比如一年) 当数据最初写入数据库时,如果系统时间错误,这将非常有用 或者,就像我的情况一样 使用历史数据为应用程序创建最近的演示数据 是否有一种方法可以同时移动数据库中的所有DATETIME字段 如果不是,如何移动一个表中所有条目的DATATIME列(即添加一些偏移) 谢谢你的回答 尝试使用INTERVAL关键字 UPDATE table_name

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

当数据最初写入数据库时,如果系统时间错误,这将非常有用

或者,就像我的情况一样

使用历史数据为应用程序创建最近的演示数据

  • 是否有一种方法可以同时移动数据库中的所有DATETIME字段
  • 如果不是,如何移动一个表中所有条目的DATATIME列(即添加一些偏移)

谢谢你的回答

尝试使用
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  

这应该可以解决问题。

您想永久移动值(即更新)还是返回偏移列值(即选择)?我想永久移动值!
UPDATE table SET date_column = DATE_ADD(date_column, INTERVAL 1 YEAR);