CONVERT
je specifický pro SQL Server, CAST
je ANSI.
CONVERT
je flexibilnější v tom, že můžete formátovat data atd. Kromě toho jsou v podstatě stejné. Pokud vás nezajímají rozšířené funkce, použijte CAST
.
EDIT:
Jak poznamenali @beruic a @C-F v komentářích níže, při použití implicitní konverze (to je ta, kdy nepoužíváte CAST ani CONVERT) může dojít ke ztrátě přesnosti. Další informace naleznete v části CAST a CONVERT a zejména v tomto obrázku:Tabulka převodu datových typů serveru SQL Server. S těmito informacemi navíc zůstává původní rada stále stejná. Kde je to možné, použijte CAST.