Вопрос таков, есть БД MySQL, в одном столбце записаны даты, которые должны произойти, в формате UNIX. Можно ли через SQL передать текущее время и произвести сортировку от события, которое раньше всего произойдет, до самого дальнего. Если событие уже произошло, то его не учитывать. Если да, то как должен выглядеть запрос? Как можно передать и сравнить текущее время?
в одном столбце записаны даты, которые должны произойти, в формате UNIX
То есть это формат данных INT UNSIGNED? Тогда запрос такой:
SELECT * FROM tablename WHERE uts > UNIX_TIMESTAMP() ORDER BY uts;
Если же тип столбца TIMESTAMP или DATETIME, то сравнивать нужно с NOW():
SELECT * FROM tablename WHERE eventtime > NOW() ORDER BY eventtime;
При сравнении это работает нормально, в том числе с индексами. Однако, попытка использовать, например, разницу дат (минус), хранимых в столбцах таких типов, приводит к идиотскому результату и необходимости применять функции, которые делают невозможным использование индексов.
Продвижение своими сайтами как стратегия роста и независимости