Linq比较日期时间值

时间:2017-05-02 07:10:34

标签: c# linq datetime

我有dateTimestartfinish日期。我将它与旧值进行比较。如果它存在,我不允许更新。 entity中的值属性为intclientdateTime。  Linq代码是;

  public static bool IsWROExist(CRO cROne)
        {
            Entities entities = new Entities();
            int startDate = Convert.ToInt32(cROne.StartDate);
            int finishDate = Convert.ToInt32(cROne.FinishDate);

            return (from WRO in entities.WRO
                    where WRO.id != cROne.Id &&
                          (WRO.startDate == startDate &&
                              WRO.finishDate == finishDate )
                    select WRO).Any();
        }

我收到此错误:输入字符串的格式不正确。

3 个答案:

答案 0 :(得分:1)

您似乎没有使用包含开始日期和结束日期的变量。

以下是您应该拥有的

                     && (WRO.startDate == startDate &&
                          WRO.finishDate == finishDate )

答案 1 :(得分:1)

您已添加&&两次:

 return (from WRO in entities.WRO
                where WRO.id != cROne.Id &&    <-------
            ------>      && (WRO.startDate == startDate &&
                          WRO.finishDate == finishDate )
                select WRO).Any();

答案 2 :(得分:1)

尝试这种方式转换日期时间:

int n = int.Parse(date.ToString("yyyyMMddHHmmss"));

然后与值进行比较。

!!警告:int可能无法完全保存该值。您可能想要使用长数据类型。