c# - 在 EF 查询中格式化 DateTime

标签 c# .net frameworks entity

我有一个数据库表,其中包含接收到的文件的信息。其中一列是指定接收文件时间的 DateTime。我需要为收到的文件获取一份包含年份 (MM/YYYY) 的不同月份列表。我需要把它从这张 table 上拿下来。此表中可能有数千条记录,所以我在 Oracle 中的做法是在我的 select 语句中将日期时间格式化为 MM/YYYY 并执行带有 distinct 子句的排序描述。这给了我一份文件收到月份的列表。非常快速和高效。

现在我需要使用 EFv4 执行此操作....这是我在 Oracle 中使用的查询。任何人都知道我如何使用一种 EF 查询方式来翻译它?

select distinct
    to_char( i.date_received, 'MMYYYY')) MonthAndYear
    from table1
    order by MonthAndYear desc

最佳答案

好吧,不要像 Oracle 那样做。像 LINQ 那样做。

var q = (from i in Context.Table1
         select new
         {
             Month = i.date_received.Month,
             Year = i.date_received.Year
         }).Distinct();

获取DateTime:

var r = q.AsEnumerable().Select(d => new DateTime(d.Year, d.Month, 1));

关于c# - 在 EF 查询中格式化 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3299813/

相关文章:

c# - UpdatePanel 中的 AddThis 控件 - 确保它们在异步回发后正确呈现

iphone - 如何找到/获取 CoreMedia.framework 并开始使用它?

ios - 如何使 ios 应用程序使用 ios8 上的框架动态更新功能模块?

javascript - 如何放置边框 : 1px solid #ddd around a selectbox using jQuery?

c# - 如何忽略 ssl_client_socket_impl.cc(1061)] 在 selenium c# ChromeDriver 中握手失败

c# - EF : Incorrect usage of spatial/fulltext/hash index and explicit index order

c# - 使用 JSON 字符串将多个值添加到 1 个用户声明中

c# - 可以使 C# DateTime.TryParse 需要日、月和年吗?

c# - Excel Interop 获取单元格内文本的像素宽度

.net - 业务对象 DAL 设计