Sachin Tendulkar (India): 22 years 91 days
Considered one of the greatest cricketers of all time, Sachin Tendulkar had an illustrious ODI career that spanned two decades. He made his ODI debut on 18 December 1989 and played his last ODI on 18 March 2012. Sachin played 463 ODIs for India and scored 18,426 runs at an average of 44.83, which included 49 centuries and 96 half-centuries. All these are world records even today.
Sanath Jayasuriya (Sri Lanka): 21 years 184 days
Jayasuriya was an excellent all-rounder and explosive left-handed batsman. His ODI career started on 26 December 1989 and he played his last ODI on 28 June 2011. Jayasuriya represented Sri Lanka in 445 ODI matches, scoring 13,430 runs at an average of 32.13. He was also an excellent left arm spinner and took 323 wickets in ODIs.
Javed Miandad (Pakistan): 20 years 272 days
Miandad, a great Pakistani batsman, also enjoyed a long ODI career, which began on 11 June 1975 and ended on 9 March 1996. This is a period of approximately 21 years. Known for his impeccable technique and innings-building ability, Miandad played more than 233 ODI matches and scored 7,381 runs at an average of 41.47.
Chris Gayle (West Indies): 19 years 337 days
The self-proclaimed “Universe Boss” had an illustrious career. The former flamboyant opening batsman made his debut on September 11, 1999 and ended his illustrious career on August 14, 2019. Gayle played 301 ODI matches in which he scored 10480 runs at an average of 37.7. His ODI career lasted for about 20 years.
Shoaib Malik (Pakistan): 19 years 245 days
One of the most influential ODI players of Pakistan and world cricket, Shoaib Malik was a brilliant batsman who started his ODI journey on October 14, 1999 and ended it on June 16, 2019. Malik played 287 ODI matches in his career. In which he scored 7534 runs at an average of 34.56, with 9 centuries in his name. His ODI career also lasted for almost 20 years.
Aravinda de Silva (Sri Lanka): 18 years 352 days
Aravinda de Silva is a former Sri Lankan cricketer and captain, who also played in English county cricket. He made his ODI debut: vs. New Zealand, Moratuwa, on 31 March 1984 and played his last ODI: vs. Australia, St. George’s Park, Port Elizabeth, on 18 March 2003. Aravinda de Silva captained Sri Lanka in 18 One Day Internationals.
Jacques Kallis (South Africa): 18 years 184 days
Kallis is the only cricketer in the history of the game to score more than 10,000 runs and take more than 250 wickets in both ODI and Test match cricket. He also took 131 ODI catches. He scored 13,289 runs, took 292 wickets and 200 catches in his Test match career. Kallis won 23 man-of-the-match awards, the most by any player in Test history.
Shahid Afridi (Pakistan): 18 years 169 days
Shahid Afridi, popularly known as Shahid “Boom Boom” Afridi due to his explosive batting style, is a former Pakistani cricketer and also the former captain of the Pakistan cricket team. Shahid Afridi’s career had a promising start, showing signs of early brilliance. Afridi made his ODI debut in 1996 against Kenya. In his second ODI against Sri Lanka, he played his first international innings and broke the record for the fastest century in ODI cricket.
Graham Gooch (England): 18 years 137 days
Graham Gooch is a former English first-class cricketer who captained Essex and England. He was one of the most successful international batsmen of his generation. In his career that lasted from 1973 to 2000, he became the most prolific run scorer of all time. He has 67,057 runs to his name across first-class and limited overs games. Gooch is currently the batting coach of England.
Sean Williams (Zimbabwe): 18 years 129 days
Sean Williams is a Zimbabwean international cricketer and currently captains the national team in Test cricket. In April 2019, in the ODI series against the United Arab Emirates, Williams scored the fastest century for a Zimbabwean batsman in an ODI. Done in 75 balls.