奇怪的是,為上百個英雄立傳的司馬遷,其本人的生年至今還有疑問。對他具體是哪一年出生的,有兩種說法,一是司馬遷生於景帝中元五年(公元前145年),一是司馬遷生於武帝建元六年(公元前135年)。這兩說都是從史記自序中集解、索隱、正義這三家注中推算出來的。但司馬遷生於景帝中元五年(公元前145年)的說法,是較為準確的。可由下列事實推斷出來:
(1)司馬遷生於“景帝中元五年”,到武帝元朔二年(公元前127年),那時便十九歲了。漢書武帝紀說:元朔二年,將各郡國豪傑和財產三百萬以上的人遷徙到茂陵一地,集中看管。住在河內軹縣(今河南濟源縣)的郭解,財產達不到中產階級水平,不夠遷徙的資格,可是也被遷去了。那時司馬遷還沒有出遊,而是在關中會見郭解的。《史記·遊俠列傳》說:“郭解進入關中後,關中的賢士和富豪,無論早先認識他或不認識他的,都被他的聲名打動,爭先恐後地和他交朋友……太史公說,我看見的郭解,他的身材和相貌不及中等資質的人,他的言語也不夠豐采,可是,天下的人士,無論其是賢人,或是不肖的人,無論早先認識他或不認識他的,都仰慕他的聲名……。”這正是一個十九歲將及成年人的心理。若是司馬遷生於“建元六年”,則到元朔二年,時方九歲,九歲幼童去觀察別人,是絕不能有這樣的心理活動的。
(2)司馬遷的交遊,史記中所載的,有賈嘉、樊他廣、馮遂及平原君朱建的兒子等人。賈嘉的年齡和司馬遷差不多,其餘的人,都比他要年長。而馮遂與樊他廣兩人,沒有具體事實足以證明他們比司馬遷年長多少,隻有平原君朱建的兒子有事實可證。《史記·酈生陸賈列傳》說:孝文帝時,辟陽侯審食其因為與諸呂的關係,被淮南王殺死。當時文帝要替淮南王誅除仇人的羽翼,聽說平原君朱建曾給辟陽侯出過計策,便派遣官吏去逮捕朱建。朱建聞知捕吏要到門口了,便想自殺。朱建的兒子勸阻說:“事未可知,何必提早自殺呢!”朱建說:“我一死,禍就絕了,不會株連到你的身上了!”就自殺了。文帝後來聽到朱建自殺的消息,又憐惜起來,說“我無意要殺他。”於是召喚朱建的兒子來,拜為中大夫。淮南王殺辟陽侯審食其,是在文帝三年,為公元前177年。平原君朱建的兒子拜為中大夫,在此事之後。平原君當時年歲多大,史無明文記載,但要從他勸阻父親自殺以及擔任中大夫兩件事看來,他的年齡至少要有十八九歲。平原君的兒子後來與司馬遷相善,又曾出使匈奴因罵單於而死。史記中陸生、平原君和審食其的事情,司馬遷就是從平原君朱建的兒子口中聽說的。司馬遷同一個前輩交往,又追憶曆史掌故,則其年齡至少也要有十七八歲左右。如果司馬遷生於“景帝中元五年”,到元朔元年(公元前128年),他當年正好十八歲,在這個年齡段和朱建的兒子談論往事正好合適。但從這一年(公元前128年)上溯文帝三年(公元前177年),有四十九年的距離,因此平原君的兒子和司馬遷談論往事時,年已六十六七歲了,他還出使匈奴;一個六十多歲飽有經驗的人作使節,在事實上還有可能。假若按司馬遷生“建元六年”算,則他在八九歲時,和一個前輩交往,是不可能的,夠不上的。詢問曆史掌故,更非八九歲幼童所能做到。這必須到將及成年,十八九歲時,才能結“忘年之交”,問前代之事。可是要等到建元六年出生的司馬遷長到十八九歲,那平原君的兒子年已七十六七歲,一個八十餘歲的老耄人,再出使雪地冰天的寒國匈奴,情理上是講不通的。