java - Android SQLite 查询某月某天

标签 java android sqlite date calendar

我正在尝试从 SQLite 数据库中恢复一些日期小于今天的数据。我从日历中得到了这一天,它没有给出预期的结果:

Calendar cal = Calendar.getInstance(); 
    int dayofmonth = cal.get(Calendar.DAY_OF_MONTH);
String sql = "SELECT SUM(filed1) FROM Table1 WHERE "+Table1.DATE+"<= '%"+dayofmonth+"'";

最佳答案

由于您的数据格式为 YYYY-MM-DD,即日期组件按从最重要到最不重要的顺序排列并以零填充,您可以在此处使用常规字符串比较。

首先创建一个代表今天的相同格式的字符串,例如

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String today = sdf.format(new Date());

然后在您的 SQL 中使用该字符串,例如

String sql = ... " WHERE " + Table1.DATE + " < ?";
String[] bindArgs = new String[] { today };
Cursor c = db.rawQuery(sql, bindArgs);

关于java - Android SQLite 查询某月某天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22975225/

相关文章:

android - 不能在带有参数和 % 字符的 Android SQLite 中使用 Like 语句

java - 安卓 : Scheduling a database call in future

java - 如何使用 Lambda 表达式使 Kotlin 中的 Java 方法调用不那么冗长?

Java 和 Nagle 插图

javascript - 无法在 Android 混合应用程序(英特尔 XDK 人行横道构建)中用 javascript 保存文件

android - HelloFacebookSample 不工作,Facebook SDK 更新状态 : Android

android - 将字符串转换为 TextView

java - Apache Spark 机器学习 - 无法让 Estimator 示例工作

java - Spring Actuator不提供入口点

ruby - 在 Ruby 中线程化 sqlite 连接