#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. хм. Я не уверен, смогу ли я это сделать, поскольку я полагаю, что эта переменная используется в другом месте кода для других целей.