【问题标题】:linq to entities - how to query dates that are stored as char?linq to entity - 如何查询存储为char的日期?
【发布时间】:2012-04-11 20:41:47
【问题描述】:

在 db 表中,日期以 yyyyMMdd 格式存储在 char(8) 字段中。 如何查询日期范围?

我尝试了以下方法,但它不起作用:

context.Where(p=> Convert.ToDateTime(p.Date) >= Convert.ToDateTime('20120411');
context.Where(p=> Convert.ToInt32(p.Date) >= Convert.ToInt32('20120411');
context.Where(p=> int.Parse(p.Date) >= int.Parse('20120411');

从我读到的一种可能的方法是使用 EntityFunctions 类,但我不确定如何构造查询。关于如何做到这一点的任何想法?

【问题讨论】:

    标签: linq entity-framework entity-functions


    【解决方案1】:

    将测试字符串转换为日期:

    context.Where(p=> Convert.ToDateTime(p.Date) >= DateTime.Parse("2012/04/11 00:00:00");
    

    【讨论】:

    • LINQ to Entities 无法识别方法 'System.DateTime ToDateTime(System.String)' 方法,并且该方法无法转换为存储表达式。
    【解决方案2】:
    context.Where(p=> p.Date.CompareTo("20120411") >= 0);
    

    【讨论】:

      猜你喜欢
      • 2015-11-19
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      相关资源
      最近更新 更多