diff --git a/web/app/controllers/contests.php b/web/app/controllers/contests.php
index eea2b46e1..15dc0b693 100644
--- a/web/app/controllers/contests.php
+++ b/web/app/controllers/contests.php
@@ -56,7 +56,7 @@ function echoContest($contest) {
$table_header .= '
'.UOJLocale::get('contests::the number of registrants').' | ';
$table_header .= ''.UOJLocale::get('appraisal').' | ';
$table_header .= '';
- echoLongTable(array('*'), 'contests', "status != 'finished'", 'order by id desc', $table_header,
+ echoLongTable(array('*'), 'contests', "status != 'finished'", 'order by start_time asc, id asc', $table_header,
echoContest,
array('page_len' => 100)
);
@@ -80,7 +80,7 @@ function echoContest($contest) {
= UOJLocale::get('contests::ended contests') ?>
100,
'print_after_table' => function() {