I have a DateTime database field – TimeStamp.
My TimeStamp is indexed.
Which of the queries below gives me a better performance? QueryA? QueryB?
var dateOnly = new DateOnly(2024, 01, 01);
var queryA = Bookings.Where(b => b.TimeStamp.Year == dateOnly.Year && b.TimeStamp.Month == dateOnly.Month && b.TimeStamp.Day == dateOnly.Day);
var queryB = Bookings.Where(b => DateOnly.FromDateTime(b.TimeStamp) == dateOnly);
Below are the generated SQL queries
// Query A
SELECT *
FROM [Bookings] AS [t0]
WHERE (DATEPART(Year, [t0].[TimeStamp]) = @p0) AND (DATEPART(Month, [t0].[TimeStamp]) = @p1) AND (DATEPART(Day, [t0].[TimeStamp]) = @p2)
// Query B
SELECT *
FROM [Bookings] AS [t0]
WHERE CONVERT(DATE, [t0].[TimeStamp]) = @p0