В каком виде хранить даты исторических события в БД?
В каких диапазонах то? И с какой точностью?
Вообще "чтобы удобно сортировать" - значит целое число. Стандартный timestamp не подойдет, но кто мешает использовать свои аналоги? Например, храните количество дней с 0 года в знаковом типе (отрицательные значения - до н.э.)
www.realcoding.net/articles/funktsii-raboty-s-data...

SYEAR или YEAR	Год, записанный словами, а не цифрами; если указано'S' то перед датами до нашей эры ставится '-'.
BC или AD	BC- до нашей эры(до н.э.); AD - нашей эры
B.C. или A.D.	B.C.- до нашей эры(до н.э.); A.D. - нашей эры