1. 程式人生 > 資料庫 >mysql 時間戳轉換 今天、昨天、7天、本月、上月

mysql 時間戳轉換 今天、昨天、7天、本月、上月

下面的時間範圍查詢都是前閉後開,如 $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_ADD(DATE_SUB(curdate(), INTERVAL 0 MONTH),INTERVAL 0 DAY)); #本月開始
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_ADD(DATE_SUB(curdate(), INTERVAL 1 MONTH),INTERVAL 0 DAY)); #上月開始
set $time_end = UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(curdate(), INTERVAL 0 MONTH),INTERVAL 0 DAY)); #本月開始

end if;