簡體   English   中英

MySql-使用CONVERT_TZ時查找“今天”和“昨天”

[英]MySql - Finding “today” and “yesterday” while using CONVERT_TZ

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

您需要使用date_format函數格式化日期並將時間設置為“ 00:00:00”,今天的查詢是SELECT * FROM tablename WHERE CONVERT_TZ(insertdate,'+ 00:00','-07:00')> = date_format(convert_tz(utc_timestamp(),'+ 00:00','-07:00'),'%y-%m-%d 00:00:00');

昨天:SELECT * FROM表名WHERE CONVERT_TZ(insertdate,'+ 00:00','-07:00')介於date_format(convert_tz(date_sub(utc_timestamp(),interval 1 day),'+ 00:00','- 07:00'),'%y-%m-%d 00:00:00')和date_format(convert_tz(date_sub(utc_timestamp(),間隔1天),'+ 00:00','-07:00 '),'%y-%m-%d 23:59:59');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM