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在 的右侧重复,并在两侧BETWEEN传递两个字符串值:()

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

格式中的日期文字YYYY-mm-dd本身就足够了。通过传递('2011-12-06', 'yyyy-mm-dd')BETWEEN,它在左侧看到两个操作数并出错。然后在右侧,您可以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');

我认为在两者之间您不需要再次使用和短语重复字段名称:

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