gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:12:59 26 4
gpt4 key购买 nike

我有一个包含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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com