仅使用日期的一部分查询SQL Datetime列

本文关键字:查询 SQL Datetime 一部分 日期 | 更新日期: 2023-09-27 18:10:44

例如,我有一个列,上面有这些日期:

  • 2013-05-18
  • 2012-06-25
  • 2012-07-29
  • 2015-08-31

我想查询并只返回年份为2012或月份为05的行。问题是,我不是查询整个日期,而是其中的一部分。我正在使用实体框架和c#。

这是我的代码,它不是linq,但它完成了工作。

using (var db = new Entity())
{
     foreach (var a in db.table)
     {
          if ((a.dateColumn.Value.Day == day)) //day is an int
          {
             //do stuff
          }
      }
 }

仅使用日期的一部分查询SQL Datetime列

像这样:

var x =(from c in db.Table
         where c.Date.Value.Year == 2012
         select c).ToList();

And for Month:

var y = (from c in db.Table
         where c.Date.Value.Month == 5
         select c).ToList();

使用lambda表达式

YourTable.where(x=>x.Date.Year==2013)
YourTable.where(x=>x.Date.Month==5)