1. 程式人生 > >mysql YEARWEEK(date[,mode]) 函式 查詢上週資料 以及本週資料

mysql YEARWEEK(date[,mode]) 函式 查詢上週資料 以及本週資料

通常使用下邊sql即可(如果資料庫設定了週一為一週起始的話):

  1.  查詢上週資料(addtime為datetime格式)
  2.   SELECT id,addtime FROM mall_order WHERE YEARWEEK(date_format(addtime,'%Y-%m-%d')) = YEARWEEK(now())-1;

YEARWEEK(date[,mode]) 函式預設西方週日當做一週的起始,需要改成國人的使用習慣,用週一作為一週起始,這裡設定YEARWEEK的第二個引數mode為1即可。

由於每個資料庫的配置不一樣,所以最好還是先執行下邊的sql語句人工審查一下資料結果的第一條和最後一條資料的時間是否是上週的週一和週末,再考慮是否給mode賦值

-- 查詢上週資料(addtime為時間戳)
SELECT id,addtime FROM mall_order WHERE YEARWEEK(FROM_UNIXTIME(addtime,'%Y-%m-%d'),1) = YEARWEEK(now(),1)-1;
-- 查詢上週資料(addtime為datetime格式)
SELECT id,addtime FROM mall_order WHERE YEARWEEK(date_format(addtime,'%Y-%m-%d'),1) = YEARWEEK(now(),1)-1;

根據國人習慣 週一為一週的第一天習慣算一週的資料

SELECT * FROM t_browse_statistics WHERE YEARWEEK(date_format(brows_date,'%Y-%m-%d'),1) = YEARWEEK(now())+1
ORDER BY brows_date DESC