2012-01-31 69 views
3

我有一些MySQL數據庫有幾個表(其中包含)一些DATETIME列。我正在尋找一種方法來爲整個數據庫中的所有DATETIME列添加一些時間(比如一年)。如何在MySQL數據庫中爲所有時間戳/ DATETIME添加偏移量?

當數據最初寫入數據庫時​​,如果系統時間錯誤,這可能很有用。

或者像我的情況

爲應用程序從歷史數據創建的近期DEMO數據。

  • 有沒有辦法一次轉移數據庫中的所有DATETIME字段?
  • 如果不是,一張表中所有條目的DATATIME列如何移動(即添加一些偏移量)?

感謝您的回答!

+2

是否要永久性更改該值(即更新)還是想要返回不合格的列值(即選擇)? – Ben 2012-01-31 09:26:10

+0

我想永久改變這些值! – ducky 2012-01-31 10:58:34

回答

11
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()增加表達式2到表達式1並返回結果。 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 
相關問題