дата истечения срока с использованием utc timestamp, mysql и php? - PullRequest
0 голосов
/ 15 июля 2009

Как вы добавляете время или дни к текущему utc_timestamp?

Я использую;

new CDbExpression('UTC_TIMESTAMP()')

для обоих полей 'созданный' и 'обновленный' в моей таблице mysql, но я хотел бы добавить поле 'expiry', которое позволит 4 дня с даты создания. Я предполагаю, что это возможно, но не уверен, как.

Ответы [ 3 ]

0 голосов
/ 15 июля 2009

В MySQL:

ALTER TABLE `table` 
    ADD expiry datetime DEFAULT DATE_ADD( utc_timestamp( ) , INTERVAL 4 DAY);
0 голосов
/ 03 июля 2012

"Предложение значения DEFAULT в спецификации типа данных указывает на значение по умолчанию для столбца. За одним исключением, значение по умолчанию должно быть константой; это не может быть функция или выражение. Это означает, Например, вы не можете установить по умолчанию для столбца даты, чтобы быть значение функции, такой как NOW () или CURRENT_DATE. "

Итак, это явно задокументированное ограничение

вы должны создать TRIGGER, если ваша версия MySQL <5.6.5 </p>

НО

MySQL 5.6.5 changelog stats

Начиная с MySQL 5.6.5 , столбцы TIMESTAMP и DATETIME могут быть автоматически инициализируется и обновляется до текущей даты и времени (то есть текущая метка времени). До 5.6.5 это верно только для TIMESTAMP, и не более одного столбца TIMESTAMP на таблицу.

Ссылка:

http://bugs.mysql.com/bug.php?id=27645

http://optimize -this.blogspot.in /

0 голосов
/ 15 июля 2009

для вставки / обновления текущего времени

ОБНОВЛЕНИЕ таблицы SET создал = СЕЙЧАС ()

в течение 4 дней с даты создания SELECT * FROM таблицы, ГДЕ созданы> DATE_SUB (NOW (), INTERVAL 4 DAY)

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

...