《论衡·物势》载:“寅,木也,其禽,虎也。戌,土也,其禽,犬也。……午,马也。子,鼠刀。酉,鸡也。卯,兔也。……亥,豕也。未,羊也。丑,牛也。……巳,蛇也。申,猴也。”以上引文,只有十一种生肖,所缺者为龙。该书《言毒篇》又说:“辰为龙,巳为蛇,辰、巳之位在东南。这样,十二生肖便齐全了,十二地支与十二生肖的配属如此完整,且与现今相同,这的确算是古文献中关于生肖的较早的最完备的记载。讲生肖的渊源,必然要将生肖与天干地支联系在一起。近代在安阳殷墟出土的我国现存年代最久远的干支表,说明在殷商时代干支纪日已娴熟自如。之后随着时间的推移干支的功能逐渐多样化,它作为充当时间单位的标号,一方面扩大了,用于纪年;一方面缩小了,用于纪时(一日的十二个时辰)。根据历史记载及研究证明,生肖是继“干支纪年法”创立后才出现的 ,十二种动物是对十二地支的一一对应,以动物作地支标志。哪年出生的人就有哪年的地支所配属的动物,由此以十二种动物用来纪年、纪日和计算每一个人的属相。从中可以看出,十二生肖与十二地支是密不可分的。很久以来有学者发现十二支的古字里隐含着生肖的信息,他们将十二支与十二生肖古字相比较,发现十二支的古字形与十二种动物有一些联系。细致观察可以发现其中确有大同小异之处。东汉许慎《说文解字》中即讲到“巳”字为蛇的象形,同样的还有“亥”、“豕”。近人还考证甲骨文、金文中地支字与生肖字有相近之处,令人猜想,十二支是否就是十二生肖动物的象形字,由于十二支子丑寅卯容易记混,民间便用十二种动物代替,以动物来借代序数符号,与地支相配,成为纪年的符号系统。虽然以上猜想有一定的可信度,但细想一下便可以作出判断,十二支不可能是十二种动物的象形字,因为前面已经讲到十二支在殷商时已娴熟使用,而生肖是春秋时期才产生的,二者是不同源的。倘若在造字之时,地支便与生肖有关的话,生肖岂不是与地支同时产生了吗?综上所述笔者认为生肖的产生晚于十二地支,但与十二地支有着密不可分的关系,生肖是对十二地支的附会,至于选择了十二种动物作为代替十二地支的符号,又源于古人的动物崇拜心理。