Asp.net 使用DataView.RowFilter筛选记录时转换列的数据类型
我有一个datatable,其中一列有日期。日期存储为 2018/11/14,下午12:10 2018/11/15@13:49下午 2018/11/16,下午15:37。 等等 现在我只能根据日期过滤记录 我使用下面的代码过滤记录,但它没有返回正确的数据Asp.net 使用DataView.RowFilter筛选记录时转换列的数据类型,asp.net,c#-4.0,datatable,Asp.net,C# 4.0,Datatable,我有一个datatable,其中一列有日期。日期存储为 2018/11/14,下午12:10 2018/11/15@13:49下午 2018/11/16,下午15:37。 等等 现在我只能根据日期过滤记录 我使用下面的代码过滤记录,但它没有返回正确的数据 dv.RowFilter = "SUBSTRING(DateColumn,1,10)>='2018/11/01' AND SUBSTRING(DateColumn,1,10)<='201811/30'"; 但这会带来错误 有谁能帮
dv.RowFilter = "SUBSTRING(DateColumn,1,10)>='2018/11/01' AND SUBSTRING(DateColumn,1,10)<='201811/30'";
但这会带来错误
有谁能帮助我如何从该列中获取日期部分并将其数据类型更改为日期。可以用于
RowFilter
s的语法如所述
要将给定列中的值转换为日期,您需要使用convert
,而不是cast
(cast(DateColumn as date))
将成为:
CONVERT(DateColumn, 'System.DateTime')
不幸的是,如果字符串的格式可以很容易地转换为日期时间
(尽管尝试这样做肯定不会有什么坏处!),我会感到惊讶,但这样做可能会给您带来一些成功:
CONVERT(SUBSTRING(DateColumn, 1, 10), 'System.DateTime')
然后,您可以对其应用过滤器并说:
dv.RowFilter = "CONVERT(SUBSTRING(DateColumn, 1, 10), 'System.DateTime') >= '2018/11/01'";
您的打字错误
201811/30
dv.RowFilter = "CONVERT(SUBSTRING(DateColumn, 1, 10), 'System.DateTime') >= '2018/11/01'";