从数据表中选择特定日期

时间:2017-08-04 06:36:02

标签: c# .net winforms

我想在特定时间之后选择并重新分配数据表。我使用下面的代码;

dtMasterPivot = dtMasterPivot.AsEnumerable().Where(x => x.Field<DateTime>("SAMPLE_TIME").Hour >= 4).CopyToDataTable();

如上所述我只想在04:00之后选择数据。但是,它不起作用。它仍然在04:00之前带来。

1 个答案:

答案 0 :(得分:-1)

这与宣传的一样:

class Program
{
    static void Main(string[] args)
    {
        var dT = new DataTable();
        dT.Columns.Add("Id", typeof(int));
        dT.Columns.Add("Sample_Time", typeof(DateTime));
        dT.Columns.Add("Misc", typeof(string));

        var row = dT.NewRow();
        row[0] = 1;
        row[1] = new DateTime(2017, 8, 3, 15, 15, 0);
        row[2] = "3:15 PM";
        dT.Rows.Add(row);

        row = dT.NewRow();
        row[0] = 2;
        row[1] = new DateTime(2017, 8, 3, 3, 59, 0);
        row[2] = "3:59 AM";
        dT.Rows.Add(row);

        row = dT.NewRow();
        row[0] = 3;
        row[1] = new DateTime(2017, 8, 3, 12, 0, 0);
        row[2] = "Noon";
        dT.Rows.Add(row);

        dT = dT.AsEnumerable().Where(x => x.Field<DateTime>("Sample_Time").Hour >= 4).CopyToDataTable();
        for (int i = 0; i < dT.Rows.Count; i++)
        {
            Console.WriteLine((string)dT.Rows[i][2]);
        }
        Console.ReadKey();
    }
}

真的很傻,但你确定你的字段名称吗?还有你是否使用12/24小时?