我的数据库“01-APR-12”中有这种格式的日期,并且该列是DATE类型。

我的SQL语句如下所示:

SELECT DISTINCT c.customerno, c.lname, c.fname
FROM customer c, sales s
WHERE c.customerno = s.customerno AND s.salestype = 1
AND (s.salesdate BETWEEN '01-APR-12' AND '31-APR-12');

当我尝试以这种方式进行操作时,出现此错误-ORA-01839:日期对指定的月份无效。

甚至可以在数据库中如何设置日期的情况下使用BETWEEN关键字?

如果不是,是否还有另一种方法可以获取该日期范围内的数据输出而不必修复数据库中的数据?

谢谢!

最佳答案

4月有30天而不是31天。

更改

SELECT DISTINCT c.customerno, c.lname, c.fname
FROM customer c, sales s
WHERE c.customerno = s.customerno AND s.salestype = 1
AND (s.salesdate BETWEEN '01-APR-12' AND '31-APR-12');


SELECT DISTINCT c.customerno, c.lname, c.fname
FROM customer c, sales s
WHERE c.customerno = s.customerno AND s.salestype = 1
AND (s.salesdate BETWEEN '01-APR-12' AND '30-APR-12');

而且你应该很好走。

10-05 18:36