如何使用日期时间列过滤数据表

本文关键字:过滤 数据表 时间 何使用 日期 | 更新日期: 2023-09-27 17:55:31

我想过滤一个数据表并且它可以工作,但是如果我搜索日期时间,我会得到一个错误。

这是我的代码。我做错了什么?

 DataTable tb = DataBaseManager.GetRadiusDataTable(radiusconnectionstring, "marksullivan"); 
DataRow[] filteredRows = tb.Select("AcctStartTime LIKE '%" + searchstring + "%' OR AcctStopTime LIKE '%" + searchstring + "%' OR FramedIPAddress LIKE '%" + searchstring + "%'");
tb = filteredRows.CopyToDataTable();
this.ListView.DataSource = tb;
this.ListView.DataBind();

开始时间:日期时间AcctStopTime :d atetime装裱IPAddress : varchar

The error: The Operation 'Like' could not to System.DateTime and System.String execute.

我该怎么做?

如何使用日期时间列过滤数据表

在 RowFilter 中尝试这样做日期比较

string filter = $"DateFrom > '{daDateFrom}' AND DateTo <= '{daDateTo}'";
tb.Select(filter)

或来自数据行筛选器示例

日期值括在尖锐字符 # # 中。日期格式与 DateTime.ToString() 方法的结果相同不变或英语区域性。

[C#]

dataView.RowFilter = "Date = #12/31/2008#"          // date value (time is 00:00:00)
dataView.RowFilter = "Date = #2008-12-31#"          // also this format is supported
dataView.RowFilter = "Date = #12/31/2008 16:44:58#" // date and time value