If the:

"select * from Table WHERE Date=(SELECT MAX(Date) FROM Table)"

returns latest record in the table, ways to get second latest record?

SELECT * 
FROM Table
WHERE Date = ( SELECT MAX(Date) 
               FROM Table
               WHERE Date < ( SELECT MAX(Date) 
                              FROM Table
                            )
             ) 

or:

SELECT TOP 1 * 
FROM Table
WHERE Date < ( SELECT MAX(Date) 
               FROM Table
             ) 
ORDER BY Date DESC

or:

SELECT *
FROM
  ( SELECT t.*
         , ROW_NUMBER() OVER(ORDER BY Date DESC) AS RowNumber
    FROM Table t
  ) AS tmp
WHERE RowNumber = 2

When the Date column has unique values, the 3 queries can give exactly the same result. When the column might have duplicate dates, they can provide spun sentences (when you will find ties in first or second place). The very first query may even give multiple rows within the result if you will find ties in second place.

"select TOP (1) * 
 from Table   
 WHERE Date<(SELECT MAX(Date) FROM Table) 
 ORDER BY Date DESC"

should have the desired effect.

Book this code.

SELECT * FROM category WHERE Created_Time <(SELECT MAX(Created_Time) FROM category) ORDER BY Created_Time DESC LIMIT 1

Prasad.