Erro ao converter uma string vazia em date

Delphi

18/06/2015

Tem uma tabela onde a coluna data é do tipo string. Quando vou exportar preciso transformar em date para usar a FormatDateTime.

Que que quando acha um campo vazio da erro.

DataFundacao := FormatDateTime('yyyy-mm-dd', strtodate(DataOriginal));

Erro.:

''is not a valid date.

Como posso resolver?
Adalmir

Adalmir

Curtidas 0

Melhor post

Gabriel Baltazar

Gabriel Baltazar

18/06/2015

Usa um if
if DataOriginal <> '' then
  DataFundacao := FormatDateTime('yyyy-mm-dd', strtodate(DataOriginal));
GOSTEI 1

Mais Respostas

Douglas

Douglas

18/06/2015

Olá Adalmir, você também pode utilizar a seguinte expressão abaixo:

DataFundacao := FormatDateTime('yyyy-mm-dd', strtodatedef(DataOriginal, 0));
GOSTEI 1
Adalmir

Adalmir

18/06/2015

Olá Adalmir, você também pode utilizar a seguinte expressão abaixo:

DataFundacao := FormatDateTime('yyyy-mm-dd', strtodatedef(DataOriginal, 0));


Dougla seu código esta muito pratico porem quando o campo esta vazio ele esta retornando o valor 1899-12-30.
Como corrijo para retornar vazio?
GOSTEI 0
Douglas

Douglas

18/06/2015

Olá Adalmir,
Desta forma você terá que fazer um pequeno tratamento mesmo. A dica do amigo Baltazar corrigi o seu problema ou o código abaixo:


Try
  DataFundacao := FormatDateTime('yyyy-mm-dd', strtodate(DataOriginal));
except
  DataFundacao := EmptyStr;
end;

GOSTEI 0
POSTAR