CONVERT
är SQL Server-specifik, CAST
är ANSI.
CONVERT
är mer flexibel genom att du kan formatera datum etc. Utöver det är de ganska lika. Om du inte bryr dig om de utökade funktionerna, använd CAST
.
EDIT:
Som noterat av @beruic och @C-F i kommentarerna nedan, är det möjlig förlust av precision när en implicit konvertering används (det vill säga en där du varken använder CAST eller CONVERT). För ytterligare information, se CAST och CONVERT och i synnerhet denna grafik:SQL Server Data Type Conversion Chart. Med denna extra information förblir det ursprungliga rådet detsamma. Använd CAST där det är möjligt.