Любая помощь высоко ценится.
Скажем, у меня есть база данных MySQL с столбцом timestamp со значением «1305590400», как я могу сравнить это с переменной PHP, например «2011-05-17»? Я хочу полностью игнорировать временную часть и сравнивать только дату.
На данный момент я пытаюсь заставить его работать со следующим, но он не возвращает никаких результатов:
WHERE FROM_UNIXTIME('timestamp_column','%Y-%m-%d') = '" . $date. "'
Вы не получаете результатов, которые, вероятно, $date
имеют некоторое временное смещение и не равны 00:00:00
в вашем часовом поясе.
WHERE timestamp_column BETWEEN '" . strtotime($date) . "' AND '" . strtotime($date, '+1 day') . "'
или, если быть более точным:
WHERE timestamp_column >= '" . strtotime($date) . "' AND timestamp_column < '" . strtotime($date, '+1 day') . "'
Просто
SELECT [...] WHERE '$you_var' = date(`timestamp_column`);
Функция MySQL date ()
Вы всегда можете преобразовать метку времени в форматированную дату.
SELECT FROM_UNIXTIME(1358871753,'%Y %D %M');
Производит: 2013 22 января