我以为这会很简单,但显然不是!
基本上,我有一个日期,并希望对两个日期列执行“介于”操作,如下所示:
myDataTable.Select(myDate & " between (StartDate and EndDate)")其中,StartDate和EndDate是DataTable中确实存在的日期列。
有什么想法吗?
发布于 2009-12-15 19:38:01
为什么不直接使用>=和<=
Dim dt As New DataTable()
dt.Columns.Add("StartDate")
dt.Columns.Add("EndDate")
Dim row1 As DataRow = dt.NewRow()
row1("StartDate") = New DateTime(2009, 1, 1)
row1("EndDate") = New DateTime(2009, 1, 31)
dt.Rows.Add(row1)
Dim myDate As New DateTime(2008, 12, 15)
Dim rows As DataRow() = dt.[Select]([String].Format("#{0}# >= StartDate AND #{0}# <= EndDate", myDate.ToString("dd MMM yyyy")))发布于 2009-12-15 19:44:00
DataTable.Select方法不支持BETWEEN操作。此操作特定于数据库引擎。请记住,DataTable是一个内存结构,并不一定支持数据库服务器的所有功能。
DataTable.Select方法支持与DataColumn.Expression相同的筛选器表达式语法。你可以尝试下面的表达式来达到同样的效果(注意,我还没有测试过它!)
myDataTable.Select("#" + myDate + "# >= StartDate AND EndDate <= #" + myDate + "#");发布于 2018-02-27 16:05:05
要小心,首先你必须写列名,然后是条件,最后是变量:
myDataTable.Select( **StartDate** =< "#" + myDate + "# AND **EndDate** <= #" + myDate + "#");https://stackoverflow.com/questions/1906840
复制相似问题