mysql-在使用convert\u tz时查找“今天”和“昨天”

ktecyv1j  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(316)

在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')
jchrr9hc

jchrr9hc1#

您需要使用日期格式函数格式化日期,并将时间设置为“00:00:00”。今天的查询是selectfrom tablename,其中convert\U tz(insertdate,'+00:00','-07:00')>=日期格式(convert\U tz(utc\U timestamp(),'+00:00','-07:00'),'%y-%m-%d 00:00:00');
昨天:选择
from tablename,其中convert(insertdate,“+00:00”,“-07:00”)在日期格式(convert(date,“-sub(utc,“-timestamp(),interval 1 day)”、“+00:00”,“-07:00”)、“%y-%m-%d 00:00:00”)和日期格式(convert(date,“-sub(utc,“-timestamp(),interval 1 day)”、“+00:00”,“-07:00”)、“%y-%m-%d 23:59:59”)之间;

相关问题