【发布时间】:2019-09-02 12:54:12
【问题描述】:
我需要在表中显示本月创建的所有记录。格式为 mmm dd yyyy,使用 java 和 sqlite
我的数据库中有“开始”列,如果日期的月份是本月,它必须出现在表格中。
我在下面尝试了这个代码,请指导我。
我需要选择当月内的所有记录。
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH, 1);
c = Calendar.getInstance(); // reset
String today = dateFormat.format(c.getTime());
int month = c.get(Calendar.MONTH) + 1;
String sql = "SELECT Firstname FROM Members_Tbl WHERE End = '" + month
+ "'";
pst = con.prepareStatement(sql);
rs = pst.executeQuery();
monthlyreports.setModel(DbUtils.resultSetToTableModel(rs));
rs.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
【问题讨论】:
-
Mysql 和 sqlite 不一样,所以 \i 从你的标签中删除了它。
-
在您的问题中,您提到了
created_at和Start列,并且在您的代码中,您有一个列End。说明你需要什么。 -
我的错。代码错了,应该是Start。
-
我记得 SQLite 没有
date数据类型吗?所以你需要像SELECT Firstname FROM Members_Tbl WHERE End like 'April % 2019';这样的查询?我建议您将日期字符串存储为 ISO 8601 格式 (yyyy-mm-dd)。它还可能使您的查询更简单。