FormatDateTime não funciona

Delphi

05/06/2014

Srs, estou tentando mostrar um campo data de minha tabela no formato 'dd/mm/yyyy' com FormatDateTime mas esta dando o seguinte erro:( "2014-06-04" is not a valid date time ), curioso que quando coloco now ele funciona normal. Alguem poderia me ajudar, já tentei de tudo mas não estou conseguindo resolver o problema.

Obrigado,

Vantuil.

PS: Meu banco é SQ-Server 2008r2 e estou usando Delphi XE3
Vantuil Amante

Vantuil Amante

Curtidas 0

Respostas

Cauê Nishijima

Cauê Nishijima

05/06/2014

Posta como você esta fazendo pra ficar mais fácil detectar o que pode estar errado!
GOSTEI 0
Vantuil Amante

Vantuil Amante

05/06/2014

FormatDateTime('dd/mm/yyyy',queryApont.FieldByName('apt_data_apont').AsDateTime)
GOSTEI 0
Edinei Steffen

Edinei Steffen

05/06/2014

Por hora isso pode te ajudar. Transforme isso em uma função e toda vez que vc quiser formatar chame esta função.
var
  txt,tmp, d, m, a, data_ok: string;
begin
  tmp := queryApont.FieldByName('apt_data_apont').AsString;
  txt := copy(tmp,1,pos('-',tmp)-1);
  delete(tmp,1,pos('-',tmp));
  if length(txt) > 2 then
    a := txt;
  txt := copy(tmp,1,pos('-',tmp)-1);
  delete(tmp,1,pos('-',tmp));
  m := txt;
  txt := copy(tmp,1,pos('-',tmp)-1);
  delete(tmp,1,pos('-',tmp));
  d := txt;
  data_ok := d + '/' + m + '/' + a;
end;


OBS.: As configurações regionais do teu computador estão no padrão "dd/MM/yyyy"... Quem sabe pode ser isso...
GOSTEI 0
Edinei Steffen

Edinei Steffen

05/06/2014

Por hora isso pode te ajudar. Transforme isso em uma função e toda vez que vc quiser formatar chame esta função.
var
  txt,tmp, d, m, a, data_ok: string;
begin
  tmp := queryApont.FieldByName('apt_data_apont').AsString;
  txt := copy(tmp,1,pos('-',tmp)-1);
  delete(tmp,1,pos('-',tmp));
  if length(txt) > 2 then
    a := txt;
  txt := copy(tmp,1,pos('-',tmp)-1);
  delete(tmp,1,pos('-',tmp));
  m := txt;
  txt := copy(tmp,1,pos('-',tmp)-1);
  delete(tmp,1,5);
  d := txt;
  data_ok := d + '/' + m + '/' + a;
end;


OBS.: As configurações regionais do teu computador estão no padrão "dd/MM/yyyy"... Quem sabe pode ser isso...
GOSTEI 0
Edinei Steffen

Edinei Steffen

05/06/2014

Corrigido...

Por hora isso pode te ajudar. Transforme isso em uma função e toda vez que vc quiser formatar chame esta função.
var
  txt,tmp, d, m, a, data_ok: string;
begin
  tmp := queryApont.FieldByName(''apt_data_apont'').AsString;
  txt := copy(tmp,1,pos(''-'',tmp)-1);
  delete(tmp,1,pos(''-'',tmp));
  if length(txt) > 2 then
    a := txt;
  txt := copy(tmp,1,pos(''-'',tmp)-1);
  delete(tmp,1,pos(''-'',tmp));
  m := txt;

  d := tmp;
  data_ok := d + ''/'' + m + ''/'' + a;
end;


OBS.: As configurações regionais do teu computador estão no padrão "dd/MM/yyyy"... Quem sabe pode ser isso...
GOSTEI 0
Vantuil Amante

Vantuil Amante

05/06/2014

verifiquei no meu micro e no servidor onde vai ser executado, esta no padrão "dd/MM/yyyy"....mas vamos rodar sua função pra ver se vai dar certo. obrigado.
GOSTEI 0
Vantuil Amante

Vantuil Amante

05/06/2014

Edinei, sua rotina funcionou numa boa, muito obrigado!!!!
GOSTEI 0
POSTAR