Как добавить смещение ко всем меткам времени / DATETIME в базе данных MySQL? - PullRequest
3 голосов
/ 31 января 2012

У меня есть несколько баз данных MySQL, в которых есть несколько таблиц, которые содержат (среди прочего) некоторые столбцы DATETIME. Я ищу способ добавить некоторое количество времени (скажем, один год) ко всем столбцам DATETIME во всей базе данных.

Это может быть полезно, если системное время было неправильным, когда данные были первоначально записаны в базу данных.

ИЛИ, как в моем случае

для создания последних DEMO-данных для приложения из исторических данных.

  • Есть ли способ сдвинуть все поля DATETIME в базе данных одновременно?
  • Если нет, то как можно сместить столбец DATATIME всех записей в ОДНОЙ таблице (т.е. добавить некоторое смещение)?

спасибо за ваши ответы!

Ответы [ 2 ]

12 голосов
/ 31 января 2012
UPDATE table SET date_column = DATE_ADD(date_column, INTERVAL 1 YEAR);

Это должно сработать.

3 голосов
/ 31 января 2012

Попробуйте использовать ключевое слово 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...