Depending on your regional settings, the parameter you are passing in for @TimeItemAdded might not be recognized.
You should pass the date in as:
20120720
Answer from LittleBobbyTables - Au Revoir on Stack OverflowSSRS Error converting datatype NVARCHAR to DATETIME / Too many Arguments Specified – SQLServerCentral Forums
SSRS Report Error
Converting from char to date in SSRS – SQLServerCentral Forums
sql server - SQL conversion failed when converting nvarchar value to data type int on SSRS - Stack Overflow
Videos
Depending on your regional settings, the parameter you are passing in for @TimeItemAdded might not be recognized.
You should pass the date in as:
20120720
Use an unambiguous string literal for your date. In this case:
EXEC dbo.InsertItemDetails
...
, @TimeItemAdded = '20120720';
Better yet, make sure to pass a strongly typed parameter where you know that the date is correct. Ideally, this should never be presented as a string in any format.
Regional formats like m/d/y are bad news, because you can't ensure that they will work given the user's session, dateformat, language settings, the regional settings on the machine, etc.
Well, when passing the parameter values to the dataset, first you need to convert your input parameter values to the list of CSV values.
For example, if your parameter is like:

With properties such as:

You should consume that in your dataset using JOIN function.
e.g.:
=JOIN(Parameters!input.Value,",")
It should look like:

Now, your dataset will view/receive @input as '123,456,789'
And, now you can use any split function to split the values and can use them in your SQL.
In case if there is no split function available, you can use any custom SQL (an example given below) to change the multiple values to a single-valued table:
e.g.:
DECLARE @input VARCHAR(MAX) = '123,456,789'
IF OBJECT_ID('TEMPDB..#Multi') IS NOT NULL DROP TABLE #Multi;
CREATE TABLE #Multi (value INT);
DECLARE @Insert VARCHAR(MAX) = 'INSERT INTO #Multi VALUES ('''+REPLACE(@input,',','''),(''')+''');';
EXEC (@Insert);
SELECT value FROM #Multi
Will return following output:

And you final SQL should be SQL chunk given above and:
SELECT * FROM A
WHERE Id IN (SELECT value FROM #Multi)
OR
SELECT * FROM A
JOIN #Multi M ON A.Id=M.value
Hope this help.
SSRS passes multi value parameters as a string when multiple options are selected. You can verify this by running SELECT @Input. It should see '123,124'. To pass these to your query, I would split them, cast them as an ints, then run them in your query. Something along the lines of:
DECLARE @ssrs_input NVARCHAR(MAX) = @input
DECLARE @input_tbl TABLE (
input INT
)
WHILE CHARINDEX(',',@ssrs_input) > 0
BEGIN
INSERT @input_tbl
SELECT CAST(SUBSTRING(@ssrs_input,0,CHARINDEX(',',@ssrs_input)) AS INT)
SET @ssrs_input = SUBSTRING(@ssrs_input,CHARINDEX(',',@ssrs_input)+1,LEN(@ssrs_input))
END
INSERT @input_tbl
SELECT CAST(@ssrs_input AS INT)
SELECT *
FROM A
JOIN @input_tbl ON
a.Id = @input_tbl.input
Word of warning, the cost of this increases when your number of inputs gets large. If you plan on having a lot of options with a select all, you may want to explore other avenues.