Я изо всех сил пытаюсь получить правильное определение «сегодня» и «вчера» при использовании CONVERT_TZ () в MySql.Мои даты хранятся в UTC, и мне нужно запросить даты, выходящие в часовом поясе MST, поэтому что-то вроде этого дает правильное время начала дня:
select DATE_FORMAT(convert_tz(utc_timestamp(),'+00:00','-07:00'), '%m/%d/%Y 00:00:00')
Однако, когда я помещаю его взапрос, кажется, не работает.
Этот запрос правильно создает последние 24 часа, но не "сегодня" (т. Е. Время с полуночи до настоящего времени).
SELECT * FROM tablename
WHERE CONVERT_TZ(insertdate,'+00:00','-07:00') >= convert_tz(DATE_SUB(utc_timestamp(), INTERVAL 1 DAY),'+00:00','-07:00')
Затем в аналогичной форме создается запрос, который24 часа до 24 часов назад, но не «вчера» (то есть вчера с 00:00:00 до 23:59:59 вчерашней даты в часовом поясе MST).
select * from tablename
AND CONVERT_TZ(insertdate,'+00:00','-07:00') >= convert_tz(DATE_SUB(utc_timestamp(), INTERVAL 2 DAY),'+00:00','-07:00')
AND CONVERT_TZ(insertdate,'+00:00','-07:00') <= convert_tz(DATE_SUB(utc_timestamp(), INTERVAL 1 DAY),'+00:00','-07:00')