[英]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.