如何将日期转换为字符串并使用Linq进行比较
本文关键字:Linq 比较 串并 字符串 日期 转换 字符 | 更新日期: 2023-09-27 18:18:08
部分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"));