-1

今日からの日付の差が7を超えるアイテムの合計を取得するには、mysqlステートメントを実行する必要があります(つまり、今日-7)

これは私の現在の声明です:

SELECT 
    COUNT(*)
FROM 
    complaints 
WHERE 
    complaint_status = 'OPEN' AND 
    complaint_regdate <= curdate()
    complaint_regdate >= DATE_SUB(curdate(),INTERVAL 7 day)

このエラーが発生します:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'complaint_regdate >= DATE_SUB(curdate(),INTERVAL 7 day)' at line 1

4

3 に答える 3

4

SQLにAND演算子がありません。

SELECT COUNT(*) FROM complaints WHERE complaint_status = 'OPEN' AND complaint_regdate <= curdate() AND complaint_regdate >= DATE_SUB(curdate(),INTERVAL 7 day)
于 2012-04-09T09:56:41.920 に答える
4

これにはBETWEEN演算子を使用できます

SELECT COUNT(*) 
FROM complaints 
WHERE complaint_status = 'OPEN' 
  AND complaint_regdate < (CURDATE() - INTERVAL 7 day)

DATE_SUB関数は必要ないことに注意してください。通常の減算を使用できます。complaint_regdateまた、これらは、がDATE列の場合にのみ機能します。DATETIME列の場合は、CURDATE()ではなくNOW()を使用するか、フィールド値の日付パットのみを抽出する必要があります。

于 2012-04-09T10:01:42.827 に答える
1

日付が7日以上前のカウントを見つけるためのクエリを要求しているようです。上記の現在のクエリは、過去7日間のすべてのカウントを示しています。したがって、7日以上経過したクエリは次のとおりです。

SELECT COUNT(*) FROM complaints WHERE complaint_status = 'OPEN' AND complaint_regdate < DATE_SUB(curdate(),INTERVAL 7 day)
于 2012-04-09T09:56:50.893 に答える