java - 如何查询月初到今天的 SQLite 数据

标签 java android database sqlite android-sqlite

我有一个包含column_date的表,其中日期保存为字符串yyyy-mm-dd 我通过代码查询上周

    String query = "select * from table_name where e_date  >= date('now','-7 days') order by e_date DESC";

它工作正常,但如果我使用

    String query = "select * from expenses where e_date  >= date('now','-30 days') order by e_date DESC";

它给了我最后 30 天的时间,但我需要的是当前月份从第一天到现在的时间。 感谢任何帮助,并提前致谢。

最佳答案

月初本地时间modifers对于 SQLite date() 函数,因此您可以简单地执行

String query = "SELECT * FROM expenses WHERE e_date BETWEEN date('now','localtime','start of month') AND date('now','localtime') "
<小时/>

如果你想用Java来做,你可以使用SimpleDateFormat获取今天和月初的 yyyy-MM-dd 字符串。

然后假设e_date类型为TEXT,则可以通过字符串连接进行查询

String query = "SELECT * FROM expenses WHERE " + monthStart + " <= e_date AND e_date <= " + today;

或者,使用BETWEEN

String query = "SELECT * FROM expenses WHERE e_date BETWEEN " + monthStart + " AND " + today;

例如

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH, 1);
String monthStart = dateFormat.format(c.getTime());

c = Calendar.getInstance(); // reset
String today = dateFormat.format(c.getTime());

System.out.println(monthStart + " to " + today);

在 2016 年 3 月 16 日运行此命令将打印

2016-03-01 to 2016-03-16

关于java - 如何查询月初到今天的 SQLite 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046196/

相关文章:

mysql - 高效查询、表桥/索引和结构

java - 如何洗牌一个集合?

java - 通过同一个套接字发送和接收

Java 多线程跳过循环并给出错误的结果

php - 需要帮助将 JSON 数据从 MYSQL 数据库获取到 Android 应用程序

java - java.io.File 的 jar 在哪里?

python - Django - 默认端口 0 而不是 3306 - 无法连接到 '127.0.0.1' 上的 MySQL 服务器 (61)

database - 您如何在数据库中构造配置数据?

java - getSource() - 我在这里做错了什么?

Java 获取默认的 UI 颜色