Your database contains a table named SalesOrders. The table includes a DATETIME column named OrderTime that stores the date and time each order is placed.
There is a non-clustered index on the OrderTime column.
The business team wants a report that displays the total number of orders placed on the current day.
You need to write a query that will return the correct results in the most efficient manner.
Which Transact-SQL query should you use?

A.
SELECT COUNT(*) FROM SalesOrders
WHERE OrderTime = CONVERT(DATE, GETDATE())
B.
SELECT COUNT(*) FROM SalesOrders
WHERE OrderTime = GETDATE()
C.
SELECT COUNT(*) FROM SalesOrders
WHERE CONVERT(VARCHAR, OrderTime, 112) = CONVERT(VARCHAR, GETDATE(I, 112))
D.
SELECT COUNT(*) FROM SalesOrders
WHERE OrderTime >= CONVERT(DATE, GETDATE())
AND OrderTime <DATEADD(DAY, 1, CONVERT(DATE, GETDATE()))
dont understand,can someone explain this?
4
1
D is right.
CONVERT(DATE, GETDATE() returns the DATE ONLY of Current DateTime at 00:00:00 AM
DATEADD(DAY, 1, CONVERT(DATE, GETDATE())) adds 1 day to that date at 00:00:00 AM
so every order before this date is what the question wants.
beside that this choise is the most optimum option because it does not have ant manupulation on the column OrderTime
2
0