You have a database that contains the tables as shown below:
You have a stored procedure named Procedure1. Procedure1 retrieves all order ids after a specific date. The rows for Procedure1 are not sorted. Procedure1 has a
single parameter named Parameter1. Parameter1 uses the varchar type and is configured to pass the specific date to Procedure1. A database administrator
discovers that OrderDate is not being compared correctly to Parameter1 after the data type of the column is changed to datetime. You need to update the SELECT
statement to meet the following requirements:
The code must NOT use aliases.
The code must NOT use object delimiters.
The objects called in Procedure1 must be able to be resolved by all users.
OrderDate must be compared to Parameter1 after the data type of Parameter1 is changed to datetime.
Which SELECT statement should you use? To answer, type the correct code in the answer area.
Answer: See the explanation
Explanation:
SELECT Orders.OrderID FROM Orders WHERE Orders.OrderDate>CONVERT(datetime,@Parameter1)
wrong solution, thats not even a procedure.
Proposed Solution
CREATE PROCEDURE Procedure1
(@Parameter1 varchar)
EXECUTE AS OWNER
AS
BEGIN
SELECT OrderID
FROM Orders
Where OrderDate > Cast(@Parameter1 as datetime)
END
0
3
Why Cast? Cause this clause is ANSI standart?
0
1
cast is not what i would choose for converting to datetime – i think CONVERT is better – but CAST is sufficient here, and you’ve missed WITH in 3rd line.
0
0