【问题标题】:Getting records from between Date X and Date Y from my Access database?从我的 Access 数据库中获取日期 X 和日期 Y 之间的记录?
【发布时间】:2011-01-04 07:29:25
【问题描述】:

我在 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()+"'"

查询运行良好,但我遇到的唯一问题是我只能检索单个月份的日期。

如果我请求包含多个月的跨度记录,我不会得到正确的结果。

有什么帮助吗?

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

【问题讨论】:

    标签: c# sql winforms ms-access


    【解决方案1】:

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

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

    顺便说一句,您不应该尝试连接 SQL 命令,因为这会导致 SQL 注入攻击。

    【讨论】:

      【解决方案2】:

      我用这个成功了,Recharge >= Date1 and Recharge <= Date2我没用过between,也许它更有效,但我用的是前者。

      【讨论】:

      • >= 和
      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 2017-11-16
      相关资源
      最近更新 更多