关于司马迁的生年,他本人在《史记·太史公自序》中没有记述,班固《汉书·司马迁传》亦缺乏记载。后世研究者一说司马迁生于公元前145年(景帝中元五年),一说生于公元前135年(武帝建元六年),相差十岁。
公元前145年取自《太史公自序》的《正义》,唐代张守节注。《正义》注称:“太初元年,迁年四十二岁。”公元前104年(太初元年)往上推41年,则是公元前145年(景帝中元五年)。王国维、梁启超等主此说。公元前135年取自《太史公自序》的《索隐》,依据晋代张华《博物志》称“大夫司马迁,二十八岁古六月乙岁卯,石也”。也就是说,公元前108年(汉武帝元封三年),司马迁升为太史令,年28岁,由此上推27年,即公元前135年(武帝建元六年)应为司马迁生年。郭沫若等主此说。一般采用前说。
建元六年说
持“建元六年说”者,千方百计证明《博物志》是对的,而认为张守节的《正义》是错的。理由主要有以下几点:其一,《博物志》该条所录的是汉代记籍簿,它记载着司马迁的姓名、年龄、居住地、官爵、拜官年月和俸禄等等。如此详细而真切,是录自汉代文书,其真实无疑。这是一种原始材料,其价值远超过一般史书。其二,司马迁《报任安书》中有一句话:“今仆不幸早失二亲。”如按《正义》所言司马迁生于公元前145年(景帝中元五年),公元前110年(元封元年)其父司马谈死时,司马迁应是36岁。按常理说,36岁死去父母说不上“早失二亲”。
如按《博物志》所言,司马迁生于公元前135年(武帝建元六年),即26岁父死,说早失二亲尚说得过去。其三,司马迁《报任安书》作于公元前91年(征和二年),如果他生于公元前145年(景帝中元五年),这一年应是55岁,他做郎中是在20岁左右遨游各地回来后的事,那么,他应该说待罪辇毂下30余年了。司马迁不会连自己做过的事都记不清。只有晚生10年,即公元前135年(武帝建元六年),才符合其说。
景帝中元五年说
持“景帝中元五年说”者除依据张守节的《正义》外,还提出以下几个问题或论据。其一,王国维在《太史公行年考》中认为后人引用《博物志》所以年“二十八”应是年“三十八”之误。《正义》注称“太初元年”,司马迁“年四十二”是正确的。其二,根据《史记·游侠列传》所载公元前127年(武帝元朔二年),下令将各地豪强和资财三百万缗以上的富户迁往茂陵,郭解财产不多,也被强行迁徙,司马迁也见到郭解,他说:“吾观郭解状貌不及中人,言语不足采者。”若司马迁生于公元前135年(建元六年),当时年仅9岁,决不可能对人有如此深刻的观察和心理活动。
如果按司马迁生于公元前145年(景帝中元五年),年龄为19岁,似更合适。其三,根据《汉书·儒林传》,司马迁曾向孔安国学习古文,然据《史记·孔子世家》和《资治通鉴》,孔安国在公元前127年(武帝元朔二年)为博士,当年司马迁年方9岁,一个9岁的孩子是不可能去太学向一个经学大师求教和商量问题的;如果生于公元前145年(景帝中元五年),此年19岁,似较合理。司马迁生平经历的争议很多,出生年代是争论最多的。