문제

I wrote this code. But I want to ignore time, I want to compare only day.

from s in sayac_okumalari
where s.okuma_tarihi == startDate && s.sayac_id == sayac_id
group s by new { date = new DateTime(((DateTime)s.okuma_tarihi).Year, ((DateTime)s.okuma_tarihi).Month, ((DateTime)s.okuma_tarihi).Day, ((DateTime)s.okuma_tarihi).Hour, 1, 1) } into g
select new
{
     okuma_tarihi = g.Key.date,
     T1 = g.Sum(x => x.toplam_kullanim_T1),
     T2 = g.Sum(x => x.toplam_kullanim_T2),
     T3 = g.Sum(x => x.toplam_kullanim_T3)
};

for example:

25.02.1987 == 25.02.1987
도움이 되었습니까?

해결책

use s.okuma_tarihi.Value.Date == startDate.Date. This should allow you to compare only the Date component.

Update From the discussion in comments looks like the user is using NullableType. Hence updated the solution for NullableType.

다른 팁

Use Date property of DateTime. For ex,

var date= DateTime.Now.Date;

Because you could convert s.okuma_tarihi to DateTime, I think you could do:

var sonuc = from s in sayac_okumalari
        where (DateTime)s.okuma_tarihi.Date == startDate.Date && s.sayac_id == sayac_id
        group s by new { date = new DateTime(((DateTime)s.okuma_tarihi).Year, ((DateTime)s.okuma_tarihi).Month, ((DateTime)s.okuma_tarihi).Day, ((DateTime)s.okuma_tarihi).Hour, 1, 1) } into g
        select new
        {
             okuma_tarihi = g.Key.date,
             T1 = g.Sum(x => x.toplam_kullanim_T1),
             T2 = g.Sum(x => x.toplam_kullanim_T2),
             T3 = g.Sum(x => x.toplam_kullanim_T3)
        };

Hope it helps.

Try using the Date property on the DateTime Object will be a good a simple solution.

string AdmissionDate = "10/15/2017" // mm/dd/yyyy
string DepartureDate = "10/14/2017" // mm/dd/yyyy

if (Convert.ToDateTime(AdmissionDate).Date > Convert.ToDateTime(DepartureDate).Date)
{
    // Validation: Admission Date can not be greater than Departure Date... 
}

Try this...

        try
        {
         DateTime Date1= DateTime.ParseExact(txtBox1.Text,"dd/MM/yyyy",null);
         DateTime Date2 = DateTime.ParseExact(txtBox2.Text, "dd/MM/yyyy", null);

          if (Date1 > Date2) 
          {
           //........
          }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top