下面的时间范围查询都是前闭后开,如 $time_start <= time < $time_end
if $day_index = 1 then #今天数据
set $time_start = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL 0 DAY),INTERVAL 0 HOUR));
set $time_end = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL 0 DAY),INTERVAL 24 HOUR));
elseif $day_index = 2 then #昨天数据
set $time_start = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL 1 DAY),INTERVAL 0 HOUR));
set $time_end = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL 1 DAY),INTERVAL 24 HOUR));
elseif $day_index = 3 then #7天数据
set $time_start = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL 6 DAY),INTERVAL 0 HOUR)); #6天前
set $time_end = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL 0 DAY),INTERVAL 24 HOUR)); #今天结束
elseif $day_index = 4 then #本月数据
set $time_start = UNIX_TIMESTAMP(DATE_FORMAT( CURDATE(), '%Y-%m-01 00:00:00')); #本月开始
set $time_end = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL 0 DAY),INTERVAL 24 HOUR)); #今天结束
elseif $day_index = 5 then #上月数据
set $time_start = UNIX_TIMESTAMP(DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01 00:00:00')); #上月开始
set $time_end = UNIX_TIMESTAMP(DATE_FORMAT( CURDATE(), '%Y-%m-01 00:00:00')); #本月开始
end if;
博客介绍了时间范围查询为前闭后开,即 $time_start <= time < $time_end ,并给出根据 $day_index 取值获取不同时间范围数据的条件判断,如 $day_index 为 1 取今天数据,为 2 取昨天数据等。
1823

被折叠的 条评论
为什么被折叠?



