2

私は日付の間を取得しようとしています

SELECT y.*, x.id as customerNumber
FROM table1 y
LEFT JOIN table2 x
    ON x.id = y.id
WHERE y.date_created BETWEEN ('2011-12-06','yyyy-mm-dd') AND  y.date_created('2011-12-07','yyyy-mm-dd');

これは私にエラーを与えます

コード:1241。オペランドには1つの列が含まれている必要があります

私は何が間違っているのですか?

4

3 に答える 3

4

y.date_createdの右側で繰り返し、両側にBETWEEN2つの文字列値を渡します。()

 y.date_created between '2011-12-06' AND  '2011-12-07';

この形式の日付リテラルは、YYYY-mm-ddそれ自体で十分です。に渡す('2011-12-06', 'yyyy-mm-dd')BETWEEN、左側に2つのオペランドが表示され、エラーが発生します。右側でy.date_created()は、関数のように構文的に使用しますが、これも機能しません。

于 2012-10-11T19:54:19.150 に答える
2
WHERE y.date_created between '2011-12-06' AND '2011-12-07'

そのような単純な

between '2011-12-06' AND '2011-12-07'ではbetween '2011-12-06 00:00:00' AND '2011-12-06 23:59:59'ないことに注意してください2011-12-07 23:59:59

于 2012-10-11T19:55:34.047 に答える
0

コード内: y.date_created between ('2011-12-06','yyyy-mm-dd') AND y.date_created('2011-12-07','yyyy-mm-dd');

その間に、フィールド名をandフレーズで再度繰り返す必要はないと思います:

y.date_created between ('2011-12-06','yyyy-mm-dd') AND ('2011-12-07','yyyy-mm-dd');
于 2012-10-11T19:59:28.493 に答える