I have not been able to determine what you are trying to do with the clause:
dateadd(dd, datediff(dd,0, [date_time]), 0)
. It just compares the date/time of the date_time column to the @date_time parameter while using a few extra processor cycles. Since DateTime DataTypes are accurate to fractions of a second, the chances are small that you will get a match.
The following selects those rows that are in the same month and year as the @date_time parameter. Is this your question?
SELECT * FROM Tech_data where Call_assign = @Call_assign and MONTH(date_time)=MONTH(@date_time) and YEAR(date_time)=YEAR(@date_time)
Tested: SQL Server 2012