Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Comparing nullable datetime

I am trying to compare dates in my linq query but my c.DateRequired is a nullable date field and I want to just compare the date without the time. How do I go about converting c.DateRequired in this case to just get the date.

   IEnumerable<SalesOrder> salesOrders = _uow.Repository<SalesOrder>().Query()
            .Filter(c => c.IsDeleted != true &&
                         (((c.DateRequired == DateTime.Today.Date)) && Period == 1) ||
                         (((c.DateRequired >= sDateP && c.DateRequired <= stDate)) &&
                          (Period == 2 || Period == 3)))
            .OrderBy(q => q.OrderBy(c => c.DateCreated))
            .Get()
            .Select(p => new
            {
                SalesOrder = p,
                SalesOrderDetailsList =
                    p.SalesOrderDetailsList.Where(pd => pd.IsDeleted != true),
                salesOrderDetailsComponentsList =
                    p.SalesOrderDetailsList.Select(c => c.SalesOrderDetailsComponentsList),
                SalesOrderDetailsComponentsInfoList =
                    p.SalesOrderDetailsList.Select(
                        i =>
                            i.SalesOrderDetailsComponentsList.Select(
                                info => info.SalesOrderDetailsComponentsInfoList))
            })
            .ToList()
            .Select(p => p.SalesOrder);

        return salesOrders;

    }
like image 369
k80sg Avatar asked Aug 01 '26 15:08

k80sg


1 Answers

Try to use something like this:

.Where(x => x.DateRequired.HasValue && 
            EntityFunctions.TruncateTime(x.DateRequired.Value) == EntityFunctions.TruncateTime(DateTime.Today))
.ToList();

It works perfectly for me.

like image 79
melvas Avatar answered Aug 03 '26 04:08

melvas



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!