按照我的问题:
我有一个包含所有 nvarchar 列的表,我想只加载当天的记录,如下所示:
var query = from item in dataContext.Items
orderby item.CDATE_IUD descending
where item.QV_USER == user
where item.QV_EXT == ext
where item.ACTIVE == 1
where DbFunctions.DiffDays(Convert.ToDateTime(item.CDATE_IUD), DateTime.Now.Date) == 0
select item;
我收到一个错误,指出 LINQ 无法识别 ToDateTime。
我想要的输出:
- 只加载当天的记录
输入:
- item.CDATE_IUD 是一个字符串,格式如下 dd.mm.yyyy hh:mm:ss(例如 20.07.2015 16:12:48)
如有任何帮助,我们将不胜感激。
更新:
这对我有用:
string today = DateTime.Now.ToString("dd.MM.yyyy");
var query = from item in dataContext.Items
orderby item.CDATE_IUD descending
where item.QV_USER == user
where item.QV_EXT == ext
where item.ACTIVE == 1
where item.CDATE_IUD.Substring(0,10) == today
select item;
最佳答案
我假设 item.CDATE_IUD
是日期的字符串表示形式。
Linq to EF 和 Linq to SQL 不支持字符串到日期的转换。您可以在内存中进行转换,但由于您过滤 已解析的值,因此您将提取所有记录。您也许可以改用字符串比较:
string today = DateTime.Today.ToString("yyyy-mm-dd"); // or whatever format your DB string is on.
var query = from item in dataContext.Items
orderby item.CDATE_IUD descending
where item.QV_USER == user
where item.QV_EXT == ext
where item.ACTIVE == 1
where item.CDATE_IUD.StartsWith(today)
select item;
关于c# - LINQ - 将字符串转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33127939/