linq 选择不同的年份 sql 日期字段
本文关键字:sql 日期 字段 选择 linq | 更新日期: 2023-09-27 18:31:25
我有一个 SQL 记录表,其中的日期字段类似于
|----日期----| 1/22/2016 2/3/1986 12/9/1992 2016/10/9
我想做一个 linq 到实体查询以获取一个唯一年份的数组,例如
var years = {"2016", "1986", "1992"}
我从上一个问题中找到了一个答案,将提取唯一的日期,但我只需要翻译成年份。
假设您的实体类如下所示:
public class MyEntity
{
public int MyEntityId { get; set; }
public DateTime DateTimeProperty { get; set; }
}
然后,您的查询将如下所示:
var unique_years =
context
.MyEntities
.Select(s => s.DateTimeProperty.Year)
.Distinct()
.ToList();
您可以在执行 Distinct() 之前选择 DateTime 对象的 Year
属性
var uniqueYears = db.Orders.Select(s => s.OrderDate.Year).Distinct();
假设 db
是 DbContext 的对象,并且 Orders
是 DbContext 类上类型 DbSet<Order>
的属性,并且 Order 实体具有类型 DateTime
的 OrderDate
属性。
或者,如果您已有DateTime
对象列表。
var dateTimeList = new List<DateTime>();
var uniqueYears = dateTimeList.Select(s => s.Year).Distinct();