【发布时间】:2015-08-12 13:45:22
【问题描述】:
我正在编写以下查询以获取两个日期之间的记录。我正在使用Mysql 版本5.5。可能它的重复我不知道。但是没有答案对我有用,所以我在问。我正在关注最近日期之后的最小日期。即使它不起作用。
问题:空结果集。
pstmt=con.prepareStatement("SELECT urlid FROM youtubevideos WHERE lastwatched >=? AND lastwatched <=? order by id desc LIMIT 8");
pstmt.setString(1,previousdate);//14-05-2015
pstmt.setString(2,currentdate);//12-08-2015
rs=pstmt.executeQuery();
while(rs.next())
{
.........
}
但我得到的是空的结果集。
我的表 youtubevideos 包含记录
urlid lastwatched
-------------------
url1 12-08-2015
url2 11-08-2015
url3 08-05-2015
url4
url5 10-08-2015
以上是一些数据。这里lastwatched 是varchar 和lastwatched 对于某些记录是空的。如果我之前的日期08-05-2015 表示小于当前日期 (12),则上述查询有效。否则(从 13-05-2015 起)它不起作用。请有任何建议。
【问题讨论】:
-
您能否回显您的查询并查看它的外观。可能是值被交换到了错误的地方。
-
您的日期字段是如何定义的?如果您直接在数据库中使用查询,它可以工作吗?
-
@JordiCastilla 不,它不起作用。相同的空结果。我的日期是
varchar。 -
貌似是java问题;设置 2 个值 - 如果我不得不猜测,我认为您将它们倒退,这就是您获得该输出的原因。我敢肯定,如果您在 from to 日期中运行 SELECT 和硬代码,它肯定会起作用 - 我每天都使用它(BETWEEN,而不是 >=)。祝你好运
-
mysql 不使用 2015-05-14 日期格式而不是 14-05-2015 日期格式吗?
标签: java mysql prepared-statement