java - 日期之间的Mysql不起作用

标签 java mysql prepared-statement

我正在编写以下查询以获取两个日期之间的记录。我正在使用 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

上面是一些数据。这里的 lastwatchedvarchar 并且 lastwatched 对于一些记录是空的。如果我之前的日期 08-05-2015 表示小于当前日期 (12),则上述查询有效。否则(从 13-05-2015 开始)它不起作用。请提出任何建议。

最佳答案

你为 sql 使用了错误的日期格式:

12-08-2015 // this is the output format

改用yyyy-MM-dd:

2015-08-12 // this is the sql store format

此查询在我的 Mysql 数据库中运行良好:

SELECT * FROM your_table where DATE <= "2015-05-08" AND DATE >= "2015-08-12"

转换字符串:

Date initDate = new SimpleDateFormat("dd-MM-yyyy").parse(date);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String parsedDate = formatter.format(initDate);

关于java - 日期之间的Mysql不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967074/

相关文章:

java - 如何删除 java 中模式的所有数据库对象?

javascript - 提交bar时如何让窗口foo刷新

java - 使用 PreparedStatement 构建查询

java - 合并和匹配时查询给出错误 sql server

java - 文件读取失败且没有明确原因 - Java

java - 如果 Java 的 Gradle 常规目录结构发生更改,.class 文件将在哪里创建?

java - Java中是否有Map支持通过(非唯一)值查找键?

php - 我可以在 PHP 中混合使用 MySQL API 吗?

mysql - 将 blob 转换为 varchar 在 mysql 中返回 null

PHP:为什么 mysqli_fetch_assoc() 不起作用?我正在使用 mysqli_stmt_get_result()