 <p>First of all. You should use only one column for a date whenever is possible.</p> <p>But in your case, your columns are VARCHAR type. Try something like this.</p> <pre><code>SELECT * FROM table_name where YEAR = '2016' order by CONVERT(Int,YEAR), (CASE MONTH WHEN 'January' THEN 1 WHEN 'February' THEN 2 WHEN 'March' THEN 3 WHEN 'April' THEN 4 WHEN 'May' THEN 5 WHEN 'June' THEN 6 WHEN 'July' THEN 7 WHEN 'August' THEN 8 WHEN 'September' THEN 9 WHEN 'October' THEN 10 WHEN 'November' THEN 11 WHEN 'December' THEN 12), CONVERT(Int,DDATE), CONVERT(TIME, TIME) </code></pre>