Я бы предложил следующее: вместо того, чтобы делать дату, используя отдельные значения, мы можем принять участие от полной даты, используя функции SQL, и сравнить с ней, что, на мой взгляд, лучший способ сравнения
DECLARE @Day INT=29, @Month INT=05, @Year INT = 2018,
@Date DATE = '2018-05-29'
SELECT * FROM yourTable
WHERE YEAR(@Date) = @Year
AND MONTH(@Date) = @Month
AND DAY(@Date) = @Day