DateTime 유형에서 시간이 없는 날짜만 비교하는 방법은 무엇입니까?
두 개를 비교할 수 있는 방법이 있습니까?DateTime
변수를 지정할 수 있지만 시간 부분은 무시할 수 없습니다.
앱은 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에서 작동하지 않습니다(오류:지정한 형식 멤버 '날짜'는 엔티티에 대한 LINQ에서 지원되지 않습니다.)
Entity Framework < v6.0을 사용하는 경우 다음을 사용합니다.EntityFunctions.TruncateTime
Entity Framework >= v6.0을 사용하는 경우 다음을 사용합니다.DbFunctions.TruncateTime
EF 버전에 따라 다음 중 하나를 사용합니다.DateTime
Linkq 쿼리 내에서 사용할 클래스 속성
예
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");
}
Null 가능한 날짜 필드를 사용하는 경우 이 필드를 사용할 수 있습니다.
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
}
DateTime econvertedDate = Convert.ToDateTime(end_date);
DateTime sconvertedDate = Convert.ToDateTime(start_date);
TimeSpan age = econvertedDate.Subtract(sconvertedDate);
Int32 diff = Convert.ToInt32(age.TotalDays);
diff 값은 해당 기간의 일 수를 나타냅니다.값이 음수인 경우 시작 날짜는 종료 날짜 이후입니다.이것은 좋은 수표입니다.
시도해 보세요
if(dtOne.Year == dtTwo.Year && dtOne.Month == dtTwo.Month && dtOne.Day == dtTwo.Day)
....
.NET 5에서:
시간이 없는 날짜를 비교하려면 사용해야 합니다.EF.Functions.DateDiffDay()
그렇지 않으면 코드에서 비교하게 되며, 이는 DB에서 필요한 것보다 훨씬 더 많은 데이터를 가져올 수 있음을 의미합니다.
.Where(x => EF.Functions.DateDiffDay(x.ReceiptDate, value) == 0);
조인 또는 where 절에서 다음을 사용합니다.Date
열의 속성입니다.배후에서, 이것은 실행됩니다.CONVERT(DATE, <expression>)
작동.이렇게 하면 시간이 없는 날짜를 비교할 수 있습니다.
int o1 = date1.IndexOf("-");
int o2 = date1.IndexOf("-",o1 + 1);
string str11 = date1.Substring(0,o1);
string str12 = date1.Substring(o1 + 1, o2 - o1 - 1);
string str13 = date1.Substring(o2 + 1);
int o21 = date2.IndexOf("-");
int o22 = date2.IndexOf("-", o1 + 1);
string str21 = date2.Substring(0, o1);
string str22 = date2.Substring(o1 + 1, o2 - o1 - 1);
string str23 = date2.Substring(o2 + 1);
if (Convert.ToInt32(str11) > Convert.ToInt32(str21))
{
}
else if (Convert.ToInt32(str12) > Convert.ToInt32(str22))
{
}
else if (Convert.ToInt32(str12) == Convert.ToInt32(str22) && Convert.ToInt32(str13) > Convert.ToInt32(str23))
{
}
언급URL : https://stackoverflow.com/questions/683037/how-to-compare-only-date-without-time-in-datetime-types
'programing' 카테고리의 다른 글
메모리에서 개체 크기를 가져오는 방법은 무엇입니까? (0) | 2023.05.05 |
---|---|
목표-C에서 NS 번호를 int로 변환 (0) | 2023.05.05 |
SQL 서버의 연결 시간 초과 (0) | 2023.05.05 |
내 리눅스 시스템의 모든 사용자에 대해 환경 변수를 설정하는 방법은 무엇입니까? (0) | 2023.05.05 |
단순 파이프로 소수점 2자리까지 제한합니다. (0) | 2023.04.25 |