CONVERT
é específico do SQL Server, CAST
é ANSI. CONVERT
é mais flexível, pois você pode formatar datas etc. Fora isso, elas são praticamente as mesmas. Se você não se importa com os recursos estendidos, use CAST
. EDITAR:
Conforme observado por @beruic e @C-F nos comentários abaixo, há uma possível perda de precisão quando uma conversão implícita é usada (que é aquela em que você não usa CAST nem CONVERT). Para obter mais informações, consulte CAST e CONVERT e, em particular, este gráfico:SQL Server Data Type Conversion Chart. Com essas informações extras, o conselho original ainda permanece o mesmo. Use CAST sempre que possível.