Вы должны учитывать одну проблему: в каком часовом поясе хранится ваша expiry_date относительно часового пояса вашего сервера mysql.Я использовал следующие решения:
SELECT * FROM `download` WHERE `expiry_date` > NOW();
Решение, однако, не обязательно дало мне правильный ответ, который я искал, поскольку функция NOW () локализована в часовом поясе сервера mysql.Если ваши expiry_dates не были отправлены на сервер, уже локализованный на вашем сервере с NOW (), вы получите неверное сравнение.
Во всех наших системах мы храним метки времени в базе данных, используя UTC.К сожалению, центр обработки данных, в котором мы размещаем, требует, чтобы серверы были локализованы в EST, что потенциально может испортить все наши сравнения.Решением было использовать функцию UTC_TIMESTAMP (), которая возвращает дату и время UTC без локализации.
SELECT * FROM `download` WHERE `expiry_date` > UTC_TIMESTAMP();