从Access数据库中获取日期X和日期Y之间的记录?

时间:2010-01-12 18:22:33

标签: c# sql winforms ms-access

我在Access数据库中有一个名为Recharge的表。

部分字段为RechargeDate,Account,Number等。

我想检索两个日期之间的所有记录,因此我编写了以下查询:

string Query = "select * from Recharge where Account='" + comboBox1.Text + "' 
and RechargeDate between '"+dateTimePicker1.Value.Date.ToShortDateString()+"' and '"+dateTimePicker2.Value.Date.ToShortDateString()+"'"

查询运行正常,但我遇到的唯一问题是我只能从一个月中检索日期。

如果我要求包含超过一个月的跨度记录,我就无法获得正确的结果。

任何帮助?

查询执行得很好但问题是我只能在单个月的日期之间获取详细信息,如果起始月份和结束月份不同我无法得到正确的结果plzz帮助我

2 个答案:

答案 0 :(得分:3)

也许你遇到了一些字符串日期格式问题;试试这段代码:

OleDbCommand command = new OleDbCommand(
    "SELECT * FROM Recharge " + 
    "WHERE Account=@Account and " + 
    "RechargeDate between @RechargeDateStart AND @RechargeDateEnd");
command.Parameters.AddWithValue("@Account", comboBox1.Text);
command.Parameters.AddWithValue("@RechargeDateStart",dateTimePicker1.Value.Date);
command.Parameters.AddWithValue("@RechargeDateEnd"  ,dateTimePicker2.Value.Date);
BTW,你不应该尝试连接SQL命令,因为这会导致SQL注入攻击。

答案 1 :(得分:0)

我已经成功使用了这个,Recharge >= Date1 and Recharge <= Date2我没有使用between也许它更有效率,但我使用前者。