簡體   English   中英

MySQL查詢使用現在和上周之間的日期

[英]Mysql query using dates between now and last week

因此,我試圖從今天的日期和7天之前從數據庫中獲取結果,但是由於不斷收到致命錯誤,我正在做的事情似乎是錯誤的

未捕獲的異常“ mysqli_sql_exception”,消息為“您的SQL語法有錯誤; 檢查與您的MariaDB服務器版本相對應的手冊,以在'DAYS GROUP BY logins.unique_id ORDER BY'附近使用正確的語法堆棧跟蹤:#0 mysqli-> query('SELECT SUM(DIST ...',1)#拋出1個{main}

  <?php //get info for scores in the league
             if ($result = $link->query("SELECT SUM(DISTINCT step_count.steps) as total,  logins.nickname, MAX(step_count.steps) as maxsteps, ROUND(AVG (DISTINCT step_count.steps)) as average, logins.Email as email
                FROM step_count
                INNER JOIN logins on
                  step_count.unique_id=logins.unique_id
              WHERE logins.unique_id='$unique_id' AND step_count.date BETWEEN CURDATE() AND CURDATE() + INTERVAL 7 DAYS
                GROUP BY logins.unique_id
                ORDER BY `total` DESC
              ", MYSQLI_USE_RESULT))

              while($row = $result->fetch_assoc()){ ?>

更新列后,我仍然收到相同的致命錯誤

您這里有語法問題,在BETWEEN之前缺少一列

logins.unique_id='$unique_id' BETWEEN CURDATE() AND CURDATE() + INTERVAL 7 DAYS

BETWEEN的正確語法是

<column_name> BETWEEN <value1> AND <value2>

所以應該

logins.unique_id='$unique_id' AND <date_column> BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY) 

並且,請改用DATE_ADD添加特定的天數。

另外,要接收今天和7天之前的數據,您需要使用DATE_SUB因此查詢的最后一部分將是:

step_count.date BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()

您的GROUP BY應該是:

GROUP BY logins.nickname, email

暫無
暫無

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

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