dateadd будет делать то, что просит ваш заголовок:
Например:
select getdate(), dateadd(hh, 4, getdate())
Однако вы можете фильтровать по диапазону дат, используя between
, переменные не нужны:
Например:
SELECT HC_PRIME_REPORTDATA.iReportDataID
FROM WinTest1..HC_PRIME_REPORTDATA HC_PRIME_REPORTDATA
WHERE HC_PRIME_REPORTDATA.dtTime between dateadd(hh, 4, convert(datetime, convert(date, dateadd(d, -1, getdate()))))
and dateadd(hh, 4, convert(datetime, convert(date, getdate())))