Как сравнить текущую дату с датами, хранящимися в базе данных MySQL? - PullRequest
1 голос
/ 15 марта 2011

Я кодирую загрузчик, который сохраняет в БД дату загрузки файла с помощью CURDATE ().Я хочу сравнить текущую дату с датой, сохраненной в БД, чтобы изменить цвет значка, относящегося к файлу, в зависимости от того, как долго это чувство было загружено.Например, если меньше недели, значок будет зеленым, если больше недели, будет желтым, если более двух недель красным.Как мне это сделать?Спасибо.

Ответы [ 3 ]

2 голосов
/ 15 марта 2011

Я думаю, что datediff - это то, что вы ищете http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
        -> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
        -> -31
1 голос
/ 15 марта 2011
SELECT CASE 
    WHEN DATE_FIELD >= NOW() - INTERVAL 1 WEEK THEN 'GREEN' 
    WHEN DATE_FIELD >= NOW() - INTERVAL 2 WEEK THEN 'YELLOW'
    ELSE 'RED' 
END 
FROM A_TABLE`

По сути, это вернет первое значение (это THEN <value> биты), для которого условие (блоки WHEN <condition>) истинно.То, как я это сформулировал, немного отсталое по сравнению с «естественной» логикой, но это означает:

  1. , если дата находится в пределах 1 недели, зеленый
  2. , еслидата в течение 2 недель, желтый
  3. , красный
0 голосов
/ 15 марта 2011

Получив дату от MySQL, вы можете использовать strtotime ($ result ['date']), чтобы получить метку времени, а затем делать с ней практически все, что захотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...