带有日期的c#datatable select语句

我正在尝试在数据表上创建一个select语句,以获取我正在寻找的日期范围内的行。 我是新手,我不太明白这个选择语句是如何工作的。 我试着写这个但是没有用。 你能帮我一把吗? 我被卡住了

foundRows = dt.Select("DATE1 = '" + date1+ '"'); 

除了用#包装日期之外,如果date1是DateTime而不是字符串,则需要使用ToString(您的日期格式)来获取正确的sql语句。 对于调试,如果首先创建包含filter的字符串,则使其更容易,然后使用该字符串进行选择。 然后,您可以查看字符串并在查询构建器中使用它来validation您的sql。

这是我测试过的最佳最佳搜索标准。 你必须约会。

From_Date = 12/01/2012 To_Date = 12/31/2012

和您应用的DataTable中的列。 (在我的代码’日期’)

您的Select Statement将是这样的。

  DataRow[] rows = newTable.Select("date >= #" + from_date + "# AND date <= #" + to_date + "#"); 

在SSIS脚本组件中使用它。 我刚才使用了上面的例子,其中包括日期周围的“#”。 我也将每个转换为字符串。 这非常有效。

以防万一你想知道我如何在SSIS中设置它:首先有一个数据流使用记录集目的地和一个Object变量来存储记录集。

在我的脚本中,我将变量包含在内。

在主class……

 public class ScriptMain : UserComponent { OleDbDataAdapter a = new OleDbDataAdapter(); System.Data.DataTable AwardedVacTable = new System.Data.DataTable(); ... ... 

然后在预执行中……

 public override void PreExecute() { base.PreExecute(); a.Fill(AwardedVacTable, Variables.rsAwardedVac); ... ... 

然后在自定义方法中访问数据表…

 String dtFilter = "EmployeeID = " + empId.ToString() + " AND (#" + Convert.ToString(StartDate) "# <= EndDate AND #" + Convert.ToString(StartDate) + "# >= StartDate" + " OR #" + Convert.ToString(StartDate.AddDays((double)numDays)) + "# >= StartDate AND #" + Convert.ToString(StartDate.AddDays((double)numDays)) + "# <= EndDate)"; DataRow[] Overlaps = AwardedVacTable.Select(dtFilter); 

expression =“Date>#2015-1-1#”; DataRow [] foundRows = table.Select(expression); 与select * from tablename where Date>’2015-1-1′