繁体   English   中英

如何将日期转换为字符串并使用Linq进行比较

[英]How to convert date to string and compare using Linq

Sql查询的一部分:

...
RIGHT(cast([ADJ_DATE] AS DATE), 5) DH
...

它以DataTable( dt )中的以下格式返回该列:

11-15
11-13
11-20
11-14

尝试执行以下操作:

string dat = DateTime.Now.AddDays(-2).ToString("MM-dd"); // which returns 11-13
var k = dt.AsEnumerable().Any(row => dat == Convert.ToString(row.Field<DateTime>("DH"))); //should return the row with 11-13, but instead I get an error

错误:

Exception Details: System.InvalidCastException: Specified cast is not valid.

我如何更新代码,以便获得期望的结果。

您不需要DateTime

var k = dt.AsEnumerable().Any(row => dat == row.Field<string>("DH")); 

RIGHT

返回具有指定字符数的字符串的右侧部分。

在这里看看。

更新资料

如果要获取DH值等于dat所有行,则应使用Where方法:

var rows = dt.AsEnumerable().Where(row => dat == row.Field<string>("DH")); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM