在 MySql 中使用 CONVERT_TZ() 时,我正在努力获得“今天”和“昨天”的正确定义。我的日期存储在 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 小时,但不是“昨天”(即 MST 时区昨天从 00:00:00 到 23:59:59 的昨天)。
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')