gpt4 book ai didi

c# - 将字符串转换为 LinqToEntities 中的日期时间(在查询内)

转载 作者:行者123 更新时间:2023-11-30 17:14:08 25 4
gpt4 key购买 nike

我在表中有一个字符串格式的日期,我需要将它与参数进行比较以检索与给定日期匹配的所有行。我怎样才能做到这一点?我不能使用 DateTime.Parse 和 Convert.ToDateTime。它们都不支持(我得到一个错误)。这在 Linq 中是否完全可行,或者由于此限制,我是否必须为其编写存储过程?

注意:我无法将列的数据类型从 varchar 更改为 DateTime,因为该列还包含其他值,而不仅仅是日期。它是一个通用表,该列可能包含基于其他列中的值的不同类型的值。更改此设计超出了此问题的范围。

示例代码(“x”是传递给此方法的日期参数):

    from t1 in Table1
where EntityFunctions.DiffDays(DateTime.Parse(t1.Value),x) == 0
select new {t1.Col1, t1.Col2};

更新:如果我使用 DateTime.Parse,我会收到错误消息“LINQ to Entities 无法识别‘System.DateTime Parse(System.String)’方法,并且无法将此方法转换为存储表达式。” Convert.ToDateTime 也出现类似错误。

最佳答案

除了@Douglas 指出的有关使用字符串表示形式的问题,您可以在Linq to Entities 中使用将string 转换为DateTime SqlFunctionsDbFunctions 类:

DbFunctions.CreateDateTime(SqlFunctions.DatePart("yy", dateString),
SqlFunctions.DatePart("mm", dateString),
SqlFunctions.DatePart("dd", dateString),
SqlFunctions.DatePart("hh", dateString),
SqlFunctions.DatePart("mi", dateString),
SqlFunctions.DatePart("ss", dateString));

关于c# - 将字符串转换为 LinqToEntities 中的日期时间(在查询内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com