As per the provided data i have checked. The output is coming in correct order i.e. in date order and then in time order.
Check the sample query.
SQL
CREATE TABLE Events
(
ID INT IDENTITY,
dateofevent DATETIME,
timeofevent DATETIME,
Cityofevent NVARCHAR(250)
)
INSERT INTO Events VALUES('2017-10-20 00:00:00.000','1899-12-30 17:00:00.000','Fakenham')
INSERT INTO Events VALUES('2017-10-27 00:00:00.000','1899-12-30 15:25:00.000','Newbury')
INSERT INTO Events VALUES('2017-10-31 00:00:00.000','1899-12-30 13:25:00.000','Bangor')
INSERT INTO Events VALUES('2017-11-03 00:00:00.000','1899-12-30 13:25:00.000','Wetherby')
INSERT INTO Events VALUES('2017-11-11 00:00:00.000','1899-12-30 14:25:00.000','Wincanton')
INSERT INTO Events VALUES('2017-11-11 00:00:00.000','1899-12-30 14:50:00.000','Aintree')
INSERT INTO Events VALUES('2017-11-14 00:00:00.000','1899-12-30 14:40:00.000','Huntingdon')
INSERT INTO Events VALUES('2017-11-18 00:00:00.000','1899-12-30 13:15:00.000','Cheltenham')
INSERT INTO Events VALUES('2017-11-20 00:00:00.000','1899-12-30 13:40:00.000','Plumpton')
INSERT INTO Events VALUES('2017-11-22 00:00:00.000','1899-12-30 15:10:00.000','Hexham')
INSERT INTO Events VALUES('2017-12-02 00:00:00.000','1899-12-30 13:45:00.000','Doncaster')
--EXEC [EventsPageSize] 1,3,11
--EXEC [EventsPageSize] 1,8,11
CREATE PROCEDURE [dbo].[EventsPageSize]
(
@PageNum int,
@PageSize int,
@TotalRowsNum int output
)
AS
BEGIN
SET NOCOUNT ON;
SELECT ROW_NUMBER() OVER
(
ORDER BY [dateofevent] DESC, [timeofevent] DESC
)
AS RowNumber
,[Dateofevent]
,[Timeofevent]
,[Cityofevent]
INTO #Results
FROM [Events]
SELECT @TotalRowsNum = COUNT(*)
FROM #Results
SELECT * FROM #Results
WHERE RowNumber BETWEEN (@PageNum - 1) * @PageSize + 1 AND @PageNum * @PageSize
DROP TABLE #Results
END
Output
