如何在java中按日期获得销售?

时间:2010-08-30 20:33:09

标签: java sql jdbc

我正在使用ms access DB。我需要按日期获得销售。 这是我的表格规范:

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。

我在DB中使用java.sql.Date对象插入了Date值。

3 个答案:

答案 0 :(得分:2)

注意,DATE在MS Access中应为reserved keyword。您需要使用大括号指定它。此外,您还希望使用SimpleDateFormat将人类可读的日期字符串转换为完整的java.util.Date对象,然后您可以构建java.sql.Date,然后可以在其中设置PreparedStatement {{3}}通常的方式。

这是一个启动:

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);
}

答案 1 :(得分:0)

select
    sum(SALE) as TOTAL_SALE
from
    tbl
where
    DATE='8/31/2010'
group by
    DATE

答案 2 :(得分:0)

Select sum(SALE) from [your table name] where Format([DATE],"mm/dd/yyyy")='08/30/2010';