2017-04-06 13 views
0

私はtab1という名前のテーブルを持っています。私はテーブルに新しい列を追加します。 私は試しましたデフォルト値を持つMySQLデータベースのテーブルにカラムを追加

alter table tab1 add column mod_at TIMESTAMP default CURRENT_TIMESTAMP 

私は列を追加することに成功しました。しかし、デフォルトのタイムスタンプ値はローカルのタイムスタンプになります。ローカルタイムスタンプではなく、UTCタイムスタンプをデフォルト値として追加する方法は?

答えて

-1

あなたは私はあなたがTIMESTAMP列の型がどのように働くか誤解疑う代わり

+0

'alter table tab1 add column mod_at TIMESTAMPのデフォルトのUTC_TIMESTAMP()'または 'ALTER TABLEのADD COLUMN mod_at TIMESTAMP DEFAULT UTC_TIMESTAMP'は使用できません。エラーが発生します –

+0

@Raymond – Virat

1

UTC_TIMESTAMP()を使用することができます。この列は常にUTCを内部的に使用しますが、読取りまたは書込みの際にサーバー/セッションのタイムゾーンを/から/に変換します。あなたは、セッションのタイムゾーンを表示するには、このクエリを実行することができます:

SELECT @@session.time_zone 

、あなたはタイムゾーンを変更した場合、例えば:

SET @@session.time_zone = '+00:00' 

...あなたは既に値が変更を保存していることがわかります新しいタイムゾーンに一致するようにします。それが期待される行動です。

関連する問題