C# 带日期的c datatable select语句

C# 带日期的c datatable select语句,c#,datetime,select,datatable,C#,Datetime,Select,Datatable,我正在尝试对datatable执行select语句,以获取我要查找的日期范围内的行。我是新来的,我不太明白select语句是如何工作的。我试着写这个,但不起作用。你能帮我一下吗。我卡住了 foundRows = dt.Select("DATE1 <= '" + date1+ "' AND DATE2 >= '" + date1+ '"'); 除了使用包装日期外,如果date1是DateTime而不是字符串,则需要使用ToString日期格式来获得正确的sql语句。为了便于调试,如果

我正在尝试对datatable执行select语句,以获取我要查找的日期范围内的行。我是新来的,我不太明白select语句是如何工作的。我试着写这个,但不起作用。你能帮我一下吗。我卡住了

foundRows = dt.Select("DATE1 <= '" + date1+ "' AND DATE2 >= '" + date1+ '"');

除了使用包装日期外,如果date1是DateTime而不是字符串,则需要使用ToString日期格式来获得正确的sql语句。为了便于调试,如果首先创建一个包含筛选器的字符串,然后使用该字符串执行select,则会更容易。然后,您可以查看字符串并在查询生成器中使用它来验证sql。

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

自2012年1月12日起 截止日期=2012年12月31日

以及应用的数据表中的列。在我的代码“日期”中

您的Select语句如下所示

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

在SSIS脚本组件中使用此选项。我只是使用了上面的例子,其中包括日期。我还将每一个都转换为字符串。这很有效

以防您想知道我是如何在SSIS中设置此功能的: 首先有一个数据流,它使用记录集目标和一个对象变量来存储记录集

在我的脚本中,我将变量作为只读变量包含

在主课堂上

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);
...
...
然后在自定义方法中访问datatable

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

表达式=日期>2015-1-1; DataRow[]foundRows=table.Selectexpression; 与
从tablename中选择*日期>'2015-1-1'

我在这篇帖子上发布了答案


您可以使用类似的方法,使用记号在某个范围内进行选择。

好的,我知道了。字符串测试=date1.ToStringMM/dd/yyyy;DataRow[]foundRows;foundRows=dt.SelectDATE1='+测试+';十进制值1=System.Convert.ToDecimalfoundRows[0][0];如果select不包含anythin,会发生什么情况。日期在边界之外?