Função @FORMATADATA

A função @FORMATADATA permite formatar campos de data/hora de forma dinâmica em uma consulta SQL, adaptando automaticamente a expressão conforme o banco de dados utilizado.

Sintaxe

@FORMATADATA(CAMPO, 'FORMATO')

Parâmetros

Nome Tipo Descrição
Campo String Campo do tipo Date, time, timestamp
Formato String Máscara de formato compatível com o banco

Comportamento por Banco

Nome Banco Descrição
@FORMATADATA PostgreSQL TO_CHAR(CAMPO, 'FORMATO')
@FORMATADATA Oracle TO_CHAR(CAMPO, 'FORMATO')
@FORMATADATA FireBird Usa EXTRACT e LPAD para compor o formato
@FORMATADATA SQLServer FORMAT(CAMPO, 'FORMATO')

Formatos Suportados

Formato Exemplo Descrição
'MM/YYYY' 08/2025 Mês e ano
'DD/MM/YYYY' 04/08/2025 Dia, mês e ano
'HH:mm' 14:30 Hora e minuto
'YYYY' 2025 Apenas ano

Exemplos

 procedure ConsultaComDataFormatada;
 var
   Q: TPHQuery;
 begin
   try
     Q := NewPHQuery;
     Q.Add('SELECT ID, ' +
           '@FORMATADATA(DATA, MM/YYYY) AS MESANO, ' +
           '@FORMATADATA(HORAINICIO, HH:mm) AS HORA ' +
           'FROM AGENDA ' +
           'WHERE DATA BETWEEN :DTINI AND :DTFIM');
   finally
     Q.Free;
   end;
 end;
 begin
   ConsultaComDataFormatada;
 end.