두 DateTime
변수 를 비교 Linq2Sql
하지만 시간 부분을 무시 하는 방법이 있습니까?
앱은 DB에 항목을 저장하고 게시 날짜를 추가합니다. 정확한 시간을 유지하고 싶지만 여전히 날짜 자체를 잡아 당길 수 있습니다.
나는 실제 시간 을 비교 12/3/89 12:43:34
하고 12/3/89 11:22:12
무시하기를 원하므로 둘 다 동일하게 간주됩니다.
나는 00:00:00
비교하기 전에 하루 종일 모든 시간을 설정할 수 있다고 생각 하지만 실제로는 날짜별로 만 비교할 수있는 시간을 알고 싶습니다.
동일한 문제가있는 코드를 발견하고 연도, 월 및 일을 개별적으로 비교합니다. 더 좋은 방법이 있습니까?
답변
객체 의 Date
속성을 사용해보십시오 DateTime
…
if(dtOne.Date == dtTwo.Date)
....
답변
진정한 비교를 위해 다음을 사용할 수 있습니다.
dateTime1.Date.CompareTo(dateTime2.Date);
답변
이것이 LINQ와 함께 작업하기 위해 수행하는 방법입니다.
DateTime date_time_to_compare = DateTime.Now;
//Compare only date parts
context.YourObject.FirstOrDefault(r =>
EntityFunctions.TruncateTime(r.date) == EntityFunctions.TruncateTime(date_to_compare));
dtOne.Date == dtTwo.Date
LINQ 에서만 작동하지 않는 경우 (오류 : 지정된 형식 멤버 ‘Date’는 LINQ to Entities에서 지원되지 않습니다)
답변
Entity Framework <v6.0을 사용하는 EntityFunctions.TruncateTime
경우 Entity Framework> = v6.0을 사용하는 경우DbFunctions.TruncateTime
DateTime
Linq 쿼리 내부에서 사용하려는 클래스 속성 주위에 (EF 버전 기반) 을 사용하십시오.
예
var list = db.Cars.Where(c=> DbFunctions.TruncateTime(c.CreatedDate)
>= DbFunctions.TruncateTime(DateTime.UtcNow));
답변
DateTime dt1 = DateTime.Now.Date;
DateTime dt2 = Convert.ToDateTime(TextBox4.Text.Trim()).Date;
if (dt1 >= dt2)
{
MessageBox.Show("Valid Date");
}
else
{
MessageBox.Show("Invalid Date... Please Give Correct Date....");
}
답변
DateTime? NextChoiceDate = new DateTime();
DateTIme? NextSwitchDate = new DateTime();
if(NextChoiceDate.Value.Date == NextSwitchDate.Value.Date)
{
Console.WriteLine("Equal");
}
널 입력 가능 DateField를 사용하는 경우이를 사용할 수 있습니다.
답변
DateTime dt1=DateTime.ParseExact(date1,"dd-MM-yyyy",null);
DateTime dt2=DateTime.ParseExact(date2,"dd-MM-yyyy",null);
int cmp=dt1.CompareTo(dt2);
if(cmp>0) {
// date1 is greater means date1 is comes after date2
} else if(cmp<0) {
// date2 is greater means date1 is comes after date1
} else {
// date1 is same as date2
}