Tempo de leitura: 3 minutos
No desenvolvimento Protheus, lidar com datas é uma tarefa constante. Muitas vezes, recebemos informações de data em formato de texto (String), como “12/07/2024”, mas para realizar cálculos — como somar dias ou comparar prazos — precisamos que esse dado seja do tipo Data. A função CToD em ADVPL (Character to Date) é a ferramenta nativa para realizar essa transformação de forma simples e eficiente, sendo um conceito base em Fundamentos do ADVPL.
O que é a função CToD e para que serve?
A função CToD converte uma cadeia de caracteres (String) formatada como data para o tipo de dado Data. Ela é essencial porque, no Protheus, operações matemáticas com datas só são permitidas se a variável for explicitamente do tipo Data.
Se você tentar somar um número a uma String como “01/01/2024”, o sistema retornará um erro de “Type Mismatch”. Ao usar a CToD, você “prepara” o dado para ser processado pelo ERP, um passo fundamental na Conversão de Dados.
Sintaxe:
CToD(cData)
Argumento(s):
Retorno:
Exemplo:
No exemplo abaixo utilizamos a função CToD e informamos como parâmetro a cadeira de caractere “12/07/23” onde a função a converteu para o tipo data(12/07/23) e depois somou a data o valor 2, onde a mesma ficou sendo 12/07/23.
Exemplo em ADVPL:
#include 'protheus.ch'
/*{Protheus.doc} User Function fCToD
(Essa função tem por finalidade mostrar a função de Conversões de Tipos de Dados CToD em ADVPL)
@type Function
@author Adilio Costa
@since 09/07/2023
@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/
|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
*/
*/
User Function fCToD()
//Variável cData do tipo caractere no formato "DD/MM/AA"
Local cData := "01/08/19"
//Variável cData sendo convertida para data
Local dData := CToD(cData)
//Adição de 2 meses a data contida em dData
dData := dData+2
MsgAlert("A data contida em dData é:"+cValToChar(dData))
Return
Domine a Manipulação de Dados no Protheus
Para dominar este conceito em cenários complexos, como a manipulação de datas em bancos SQL, integrações via API REST e o uso de funções avançadas de calendário, conheça o Portal ProtheusAdvpl. Lá, exploramos a fundo a arquitetura por trás destas funções e suas aplicações em grandes projetos.
Cursos Recomendados para Programação:
Dica de Ouro: CToD vs DToS
Enquanto a CToD é excelente para visualização e cálculos rápidos, para salvar datas em índices de tabelas ou realizar filtros em consultas SQL, recomendamos o uso da função DToS (formato AAAAMMDD), que evita ambiguidades de formato regional.
Conclusão
A função CToD em ADVPL é uma ferramenta simples, mas vital para qualquer desenvolvedor Protheus. Ela garante que a entrada de dados em formato de texto seja corretamente interpretada como uma data, permitindo que o ERP processe regras de negócio temporais com precisão. Dominar a Conversão de Dados é o que separa um código amador de uma solução profissional.
Links de referência(s):
Conteúdos relacionados
É isso aí, finalizamos aqui o post sobre a função ADVPL CToD, caso tenha ficado alguma dúvida deixe seu comentário ou me envie um email para adiliocosta@protheusadvpl.com.br, até um próximo post, grande abraço e fica com Deus.