0

我想使用 JDBC 从 MS Access 检索两个日期之间的数据。

我努力了

String query= "SELECT lastlogin FROM loginHistory " +
            "WHERE lastlogin BETWEEN #01/07/2013# AND #03/07/2013#"+
            "ORDER BY lastLogin DESC";

我没有得到想要的结果。有什么问题。请帮帮我!

谢谢你。

4

4 回答 4

2

通过将日期格式从转换01/07/20132013/07/01

String query= "SELECT lastlogin FROM loginHistory " +
            "WHERE lastlogin BETWEEN #2013/07/01# AND #2013/07/03#"+
            "ORDER BY lastLogin DESC";

谢谢大家对我的支持。。

于 2013-07-04T08:07:35.613 回答
0

Query最后错过了",你在中间添加了。

尝试

String query= "SELECT lastlogin FROM loginHistory " +
            "WHERE lastlogin BETWEEN #01/07/2013# AND #03/07/2013# "+
            "ORDER BY lastLogin DESC";
于 2013-07-04T07:10:54.670 回答
0

您的 SQL 语法是正确的,但您的代码中间有一个额外的引号,直接位于 BETWEEN 子句中的第一个日期之后。

于 2013-07-04T07:12:11.667 回答
0

我没有得到想要的结果。

我相信你的代码可以编译,但你没有得到你期望的结果集。尽管您在此处发布的代码缺少引号。我相信这是一个错字,否则代码不会自行编译。

检查查询中的日期字符串格式是否正确。执行查询作为PreparedStatement

String query= "SELECT lastlogin FROM loginHistory " +
        "WHERE lastlogin BETWEEN ? AND ?"+
        "ORDER BY lastLogin DESC";

并在使用格式正确格式化后设置日期字符串Date。还要检查你的列的数据类型是什么,是它VARCHAR/String还是DATE等等。你甚至可以format()在 sql 查询本身中使用:

Select lastlogin From loginHistory where format(lastlogin,"dd/mm/yyyy")
BETWEEN  format(#01/07/2013#,"dd/mm/yyyy") AND 
format(#03/07/2013#,"dd/mm/yyyy") ORDER BY lastLogin DESC;
于 2013-07-04T07:19:43.520 回答