The total in the year to last November increased from 1.7 million in the previous year, said the Office for National Statistics (ONS).
The number of contracts not guaranteeing regular hours represents 6% of all contracts, unchanged from the previous figure.
The ONS has previously reported that 901,000 workers are on zero-hours contracts.
TUC general secretary Frances O’Grady said: “Most people are not on zero-hour contracts by choice. They want the same rights, security and guaranteed hours as other employees.
“More than half of zero-hour contract workers have had jobs cancelled with less than a day’s notice. Zero-hour contracts are a licence to treat people like disposable labour and the Government should ban them.”
Stephen Clarke, of the Resolution Foundation think tank, said: “The use of zero hours contracts increased rapidly in the wake of the financial crisis, but our tightening labour market has curbed their growth.
READ MORE: Benefits claimants ‘forced’ to work zero-hours contracts
“Nonetheless, around 900,000 workers are on a zero hours contract, including one in 12 young people, and while some workers appreciate the flexibility they bring, for others they bring insecurity and lower pay.
“The Government can help both of these groups by providing a right to guaranteed hours for anyone who has in practice been doing regular hours on a zero hours contract for at least three months.”