Your problem could be that you are trying to compare a Timestamp by a greater than with a VARCHAR
AND (Timestamp > CONVERT(varchar, @ReportParameterStartDate, 121))
AND (Timestamp < CONVERT(varchar, @ReportParameterEndDate, 121))
The CONVERT(varchar,...
actually converts the value to a varchar rather than a date. Your parameters are already a date so you shouldn't need to cast or convert them. If Timestamp is a DATETIME field you should just be able to do something like:
AND (Timestamp > @ReportParameterStartDate)
AND (Timestamp < @ReportParameterEndDate)
Although your parameters will not have hours/minutes/seconds it will still look for everything up after midnight on the Start parameter date and before midnight of the End parameter date. If you intend on the dataset also including the end day you can alter your parameter for end date.
AND (Timestamp < DATEADD(MS,-3,CAST(CAST(@ReportParameterEndDate + 1 AS DATE) AS DATETIME)))
Is one way I normally get end of day. What it does is add a day to the end date cast it as a date to drop off the hours/minutes/seconds then casts it back to a datetime and deletes 3 milliseconds to get to the highest precision date at the end of day before rounding up to midnight the next day e.g. 2016-06-14 23:59:59.997.
(FieldSensorName IN (@ReportParameterSensorName))
Could also be an issue depending on what you are passing in the @ReportParameterSensorName
variable as it will be treated as a single literal value. So if you are passing a comma separated list or something then you need to lookup how to split the string into a table and use a join rather than an in list. Unless you are okay with some potential for error and just changing to something like
@ReportParameterSensorNameLIKE '%' + FieldSensorName '%'
Which will match any part of the string to the field for sensor name.