У меня есть таблица mysql с полями для начальной и конечной даты / времени.
Как мне выбрать только строки, которые старше текущей даты, используя php.
Формат даты окончания 2009-11-25 08:01:00 и тип поля datetime
2009-11-25 08:01:00
datetime
При условии, что временные метки и MySQL находятся в одном часовом поясе, вы можете просто сравнить с NOW().
NOW()
SELECT * FROM tbl WHERE date_col < NOW()
Это может выглядеть примерно так:
$result = mysql_query('SELECT * FROM mytable WHERE datefield < NOW()'); if (! $result) { die(mysql_error()); } while ($row = mysql_fetch_assoc($result)) { // handle contents of $row } mysql_free_result($result);
Ваш SQL-запрос будет выглядеть так:
SELECT * FROM your_table t WHERE t.end-date < CURDATE()
Для получения текущей даты поддерживаются различные синонимы - NOW (), SYSDATE () ...
Ссылка: Функции, связанные с датой MySQL