VB.NET Dataview Rowfilter by Time

时间:2016-10-31 12:25:21

标签: vb.net time dataview rowfilter

我想扩展我的dataview过滤。有些表包含datetime列。

已经实现了搜索指定日期,但是如何搜索像10:20这样的时间模式呢?

我目前的陈述如下,似乎有道理,但不起作用:

"columnname >= '10:20:00' AND columnname <= '10:20:59'"

是否有类似time()功能的东西,例如&#34; time(columnname) >= '10:20...

可能是另一种逃避不相关日期部分的方法,例如:>= '% 10:20...

找不到与此问题相关的任何内容?我真的是第一个想要这样功能的人吗?

2 个答案:

答案 0 :(得分:0)

您可以通过向项目添加System.Data.DataSetExtensions-reference并执行以下操作来使用Linq(Imports System.Linq):

Dim rows As DataRow() = (From row In myDatatable.AsEnumerable
                                Where row.Field(Of DateTime)("column").Hour > 10).ToArray()

或者更好:

Dim time As New TimeSpan(10, 20, 59)

Dim rows As DataRow() = (From row In myDatatable.AsEnumerable
                             Where row.Field(Of DateTime)("column").TimeOfDay > time).ToArray()

答案 1 :(得分:0)

我提出了以下解决方案:

RowFilter = Convert(columnname,&#39; System.String&#39;)喜欢&#39;%&#34; &安培; pTime.ToString(&#34; hh:mm&#34;)&amp; &#34;%&#39;

这就是我目前所需要的一切。对于搜索&gt; = /&lt; = /我可能会回到Eskos提案。

由于