我想使用JDBC从MS Access检索两个日期之间的数据。
我试过了
String query= "SELECT lastlogin FROM loginHistory " +
"WHERE lastlogin BETWEEN #01/07/2013# AND #03/07/2013#"+
"ORDER BY lastLogin DESC";
我没有得到预期的结果。 有什么问题。请帮帮我!
谢谢。
答案 0 :(得分:2)
通过将日期格式从01/07/2013
转换为2013/07/01
String query= "SELECT lastlogin FROM loginHistory " +
"WHERE lastlogin BETWEEN #2013/07/01# AND #2013/07/03#"+
"ORDER BY lastLogin DESC";
谢谢大家的支持..
答案 1 :(得分:0)
Query
最后错过了"
而你在中间添加了。
尝试
String query= "SELECT lastlogin FROM loginHistory " +
"WHERE lastlogin BETWEEN #01/07/2013# AND #03/07/2013# "+
"ORDER BY lastLogin DESC";
答案 2 :(得分:0)
您的SQL语法是正确的,但在代码中间有一个额外的引号,直接在BETWEEN子句中的第一个日期之后。
答案 3 :(得分:0)
我没有得到预期的结果。
我相信你的代码会编译,但你没有得到你期望的结果集。虽然您在此处发布的代码错过了引号。我认为这是一个错字,否则代码就不会自行编译。
检查查询中的日期字符串格式是否正确。以PreparedStatement
:
String query= "SELECT lastlogin FROM loginHistory " +
"WHERE lastlogin BETWEEN ? AND ?"+
"ORDER BY lastLogin DESC";
使用Date
格式正确格式化后设置日期字符串。还要检查列的数据类型是什么,是VARCHAR/String
还是DATE
等等。您甚至可以在SQL查询中使用format()
:
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;