3

LINQ to SQL에서 SQL datetime 열과 .net datetime 개체의 날짜 부분 만 비교하는 방법은 무엇입니까?


5 답변


3

다음을 사용해보십시오.Date둘 다의 속성 :

Date today = DateTime.Today; // Effectively DateTime.Now.Date

var dataFromToday = from record in context.Records
                    where record.TimeStamp.Date == today
                    select record;

나는믿다이것은 LINQ to SQL에서 작동합니다 ... tvanfosson이 말했듯이, EF에서는 그렇지 않습니다.


  • 나는 그것이 doesn''t를 알고있다. 어제 그 비트. - tvanfosson
  • @ tvanfosson : Duly 더 강조했다 :) - Jon Skeet
  • 나는 진짜로 유닛 테스트를 위해 데이터 컨텍스트를 조롱하고 LINQ를 사용하여 객체 (분명히)에서 작동하기 때문에 진짜 고통이다. 저장소를 개발할 때 단위 테스트에서 이와 같은 문제가 발생할 수 있다는 점을 기억해야합니다. - tvanfosson

1

Linq to SQL은 비교를 위해 Date 속성을 SQL로 변환하는 것을 지원합니다. 지원되는 옵션에 대한 자세한 정보는에서 찾을 수 있습니다.MSDN.


0

CLR UDF를 작성하여 날짜 만 비교 한 다음 linq에서 sql linq로 조회 할 수 있습니다.


0

using System.Data.Entity;

DbFunctions.TruncateTime(u.BirthDate) = DbFunctions.TruncateTime(someDate)


0

using System.Data.Objects.SqlClient; //Don't forget this!!

//You can access to SQL DatePart function using something like this:

YourTable.Select(t => new { DayOfWeek = SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 }); //Zero based in SQL

//You can compare to SQL DatePart function using something like this:

DateTime dateToCompare = DateTime.Today;
YourTable.Where(t => SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 == dateToCompare }); //Zero based in SQL

연결된 질문


관련된 질문

최근 질문