我正在使用ms访问数据库。我需要按日期获得销售。 这里是我的表规格:如何在java中获得按日期销售?
BILL_NO DATE SALE
1 8/30/2010 1000
2 8/30/2010 2000
3 8/31/2010 3000
4 8/31/2010 2000
如果我想出售8/31/2010它应该返回5000
我一直在使用java.sql.Date对象在数据库插入日期值。
我正在使用ms访问数据库。我需要按日期获得销售。 这里是我的表规格:如何在java中获得按日期销售?
BILL_NO DATE SALE
1 8/30/2010 1000
2 8/30/2010 2000
3 8/31/2010 3000
4 8/31/2010 2000
如果我想出售8/31/2010它应该返回5000
我一直在使用java.sql.Date对象在数据库插入日期值。
注意到应当是DATE
是在MS Access一个reserved keyword。你需要用大括号来指定它。此外,您希望使用SimpleDateFormat
将人类可读的日期字符串转换为完整的java.util.Date
对象,然后您可以构建一个java.sql.Date
,而该对象又可以通过常规方式设置为PreparedStatement
。
这里有一个开球:
String sql = "SELECT SUM(SALE) as TOTAL_SALE FROM tbl WHERE [DATE] = ? GROUP BY [DATE]";
java.util.Date date = new SimpleDateFormat("MM/dd/yyyy").parse("8/31/2010");
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
int totalSale = 0;
try {
connection = database.getConnection();
statement = connection.prepareStatement(sql);
statement.setDate(new java.sql.Date(date.getTime());
resultSet = statement.executeQuery();
if (resultSet.next()) {
totalSale = resultSet.getInt("TOTAL_SALE");
}
} finally {
close(connection, statement, resultSet);
}
select
sum(SALE) as TOTAL_SALE
from
tbl
where
DATE='8/31/2010'
group by
DATE
Select sum(SALE) from [your table name] where Format([DATE],"mm/dd/yyyy")='08/30/2010';
其工作正常... 感谢名单.. PLZ u能告诉我,如果我想找到每周每月每年销售我怎么能做到这一点? – Pratik 2010-08-30 21:31:39
不客气。不要忘记标记接受的答案。对于新问题,您应该提出一个新问题,但我会给您一个提示:读取由DB提供的SQL日期/时间函数。 MS访问特定文档可在[here](http://www.techonthenet.com/access/functions/)中找到。在页面的中间部分有一段*日期功能*。点击您的方式查找信息和示例。 – BalusC 2010-08-30 21:36:25