現在の に時間または日数を追加するにはどうすればよいですutc_timestamp
か?
私は使っている;
new CDbExpression('UTC_TIMESTAMP()')
私のmysqlテーブルの「作成済み」フィールドと「更新済み」フィールドの両方に対して、作成日から4日を許可する「有効期限」フィールドを追加したいと考えています。これは可能だと思いますが、方法がわかりません。
現在時刻の挿入/更新
UPDATE テーブル SET 作成済み = NOW()
作成日から 4 日間 SELECT * FROM table WHERE created > DATE_SUB( NOW( ), INTERVAL 4 DAY )
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
MySQL の場合:
ALTER TABLE `table`
ADD expiry datetime DEFAULT DATE_ADD( utc_timestamp( ) , INTERVAL 4 DAY);
「データ型指定の DEFAULT 値句は、列のデフォルト値を示します。1 つの例外を除いて、デフォルト値は定数でなければなりません。関数または式にすることはできません。これは、たとえば、次の値を設定できないことを意味します。日付列のデフォルトは、NOW() や CURRENT_DATE などの関数の値です。"
したがって、これは明示的に文書化された制限です
TRIGGER
MySQL バージョン < 5.6.5 の場合は作成する必要があります
しかし
MySQL 5.6.5の時点で、 TIMESTAMP および DATETIME カラムは自動的に初期化され、現在の日付と時刻 (つまり、現在のタイムスタンプ) に更新されます。5.6.5 より前では、これは TIMESTAMP にのみ当てはまり、テーブルごとに最大で 1 つの TIMESTAMP カラムに当てはまります。
参照 :