Boa noite,
Fiquei em dúvida sobre quando usar o CAST quando usar o CONVERT.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa noite,
Fiquei em dúvida sobre quando usar o CAST quando usar o CONVERT.
Olá, Maria! Tudo bom?
Pelo que sei, as duas funções fazem basicamente a mesma coisa, que é converter uma expressão em um formato de arquivo diferente. A diferença está na sintaxe e em algumas particularidades delas. O CAST tem uma sintaxe mais simples e universal, por fazer parte da especificação ANSI-SQL (não sei se é assim que fala, porque eu estava lendo um artigo em inglês falando sobre kkkk). A sua estrutura é a seguinte:
CAST (expressão AS formato_de_arquivo)
E poderia ser algo como:
CAST (SALARIO AS INT) FROM EMPREGADOS
O CONVERT já tem uma sintaxe que não é tão simples assim, não é padronizado universalmente, mas é mais versátil por ter um terceiro argumento opcional que permite estilizar como será exibido o resultado da conversão. Essa é a sua sintaxe:
CONVERT (formato_de_arquivo, expressão, estilo)
Na prática, fica algo mais ou menos assim:
CONVERT (DATE, DATA_ANIVERSARIO, 103)
Explicando esse exemplo, aqui estamos convertendo para um formato de data (DATE) um arquivo do tipo de texto (VARCHAR), usando o formato 103. Existem algumas tabelas e diversos sites também mostram quais são esses valores que são usados para converter datas, mas aqui no Brasil, normalmente usamos esse formato 103 , justamente porque a conversão é feita e é exibido no formato de data que usamos de DD/MM/AAAA.
Particularmente, vejo mais sendo usado o CONVERT onde trabalho do que CAST, mas isso por causa dessa característica de estilização que a função possui. E penso também que seja mais útil para trabalhar com datas.
Espero que tenha ficado claro a diferença entre os dois formatos, mas pode me falar aqui se precisar que eu formule a explicação de alguma outra forma ou use mais exemplos. No mais, espero que tenha ajudo, e nesse caso eu agradeceria muito se marcasse minha resposta como solução da sua dúvida! Um grande abraço e bons estudos!