Как я могу заставить запрос запрашивать все будущие даты вместо сегодняшнего?

#mysql #convert-tz

#mysql #преобразовать-tz

Вопрос:

Я хочу изменить запрос MySQL, чтобы запрашивать все события в базе данных начиная с сегодняшнего дня. Прямо сейчас он просто запрашивает все события только на дату thdays. Это то, что у меня есть:

   $query  =  "SELECT * FROM events WHERE date(convert_tz(StartDate,' 00:00','". $numric_time."'))='$currentDate' AND UserID='" . $_SESSION['userData']['UserID'] ."' ORDER BY StartTime"; //getting date's agendas
  

Спасибо!

Ответ №1:

 SELECT *
FROM events
WHERE StartDate >= CURDATE()
    AND...
  

Если вам нужно смещение часового пояса, измените запрос на use CURDATE() /- INTERVAL x HOUR , обернув StartDate в функцию, такую как CONVERT_TZ , чтобы MySQL не использовал какой-либо индекс в этом столбце.

Комментарии:

1. Мне действительно нужно это смещение часового пояса. Можете ли вы объяснить, как это будет выглядеть при сохранении данных о часовом поясе? Я новичок. Спасибо!

2. @joel Если вы сможете получить числовое смещение вместо форматированной строки (например, 2 вместо 2:00 ), запрос будет выглядеть следующим образом: WHERE StartData >= CURDATE() - INTERVAL 2 HOUR

3. хм. Я не уверен, смогу ли я это сделать, поскольку я полагаю, что эта переменная используется в другом месте кода для других целей.