2012-03-29 18 views
3

DateTimeフィールドにDATE_SUBを使用しているときに問題が発生しています。私はこのようなクエリを使用したい:MySql Between節のDATE_SUBの使用方法

SELECT 
    * 
FROM 
    SellBySalesman 
WHERE 
    userid=37 and 
    sellingDate BETWEEN CURDATE() AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) 
+0

そして、問題がありますか...? – dgw

答えて

1

あなたはこのような間の順序を反転する必要があります。

SELECT 
    * 
FROM 
    SellBySalesman 
WHERE 
    userid=37 and 
    sellingDate BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE(); 
11

私はあなたが取得しているか、エラーを確認していないが、これは動作しませんが。その理由は、BETWEEN句の引数が逆になっているためです。 BETWEENは、最初の引数がminで、2番目の引数がmaxであることが必要です。 DATE_SUBは、指定された日付から現在の日付よりも小さい間隔を減算します。後方いるあなたの値の間

SELECT 
    * 
FROM 
    SellBySalesman 
WHERE 
    userid=37 and 
    sellingDate BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE() 
+0

正確で論理的です。ありがとう@Buggabill。これが選択された回答でなければなりません。 –

1

はこのような何かを試してみてください。

最初に小さな値を指定する必要があります。「10と1の間ではなく」1と10の間に指定します。

だから、あなたのケースでは、あなたが欲しい "DATE_SUB(INTERVAL DAY 7 CURDATE()、)およびCURDATE(間)"

関連する問題