Formatação de Datas

Delphi

03/12/2005

Pessoal eu tenho um campo na tabela do tipo Date, mais só que o formato da Data do meu Banco é ´yyyy-MM-dd´, quando faço um SELECT MAX, ele me mostra no DBGrid o formato ´yyyy-MM-dd´, como eu faço pra que a Query me retorne o formato ´dd-MM-yyyy´, se os fields estivesem na query, era facil.

Obrigado


Leandrosl

Leandrosl

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

05/12/2005

tente assim:

query.Open;
TDateField(query.fields[0]).DisplayFormat := ´dd/mm/yyyy´;
ou
TDateTimeField(query.fields[0]).DisplayFormat := ´dd/mm/yyyy´;


GOSTEI 1

Mais Respostas

Marco Salles

Marco Salles

03/12/2005

Alterar as configuraçoes regionais não resilve ????

:arrow:
se resolver dá para fazer isto via programação


GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

Mais as configurações regionais já estão no padrão certo, acho que vo ter que colocar via programação, teria como vc ou alguém me passar o passo a passo

Obrigado


GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

Emerson, coloquei o Codigo, e deu erro de Acess Violation, vo colocar o meu codigo, talvez vc possa me ajudar:

With QueryVAnuncios Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT NomeCliente,MAX(DataVeiculacao) FROM veiculacao´);
SQL.Add(´GROUP BY NomeCliente´);
SQL.Add(´ORDER BY NomeCliente´);
Open;
TDateTimeField(QueryVAnuncios.fields[0]).DisplayFormat := ´dd/mm/yyyy´;
End;


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

03/12/2005

o Fields[0] foi só um exemplo. funcionaria se fosse o seu primeiro campo. como é o segundo, basta alterar o índice:

With QueryVAnuncios Do 
Begin 
  Close; 
  SQL.Clear; 
  SQL.Add(´SELECT NomeCliente,MAX(DataVeiculacao) DataVeiculacao FROM veiculacao´); 
  SQL.Add(´GROUP BY NomeCliente´); 
  SQL.Add(´ORDER BY NomeCliente´); 
  Open; 
  TDateTimeField(fields[1]).DisplayFormat := ´dd/mm/yyyy´;
End;



GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

Emerson coloquei o Fields[1], e continua dando o mesmo erro.

Obrigado


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

03/12/2005

se você tirar a linha [i:64bd7af9fd]TDateTimeField(fields[1]).DisplayFormat := ´dd/mm/yyyy´[/i:64bd7af9fd] o erro persiste?
porque eu testei e não deu erro algum.


GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

É, se eu tirar TDateTimeField(fields[1]).DisplayFormat := ´dd/mm/yyyy´, funciona normalmente, é estranho emerson, já que vc testo e funciono, aqui também teria que funcionar, será que vc pode manda o exemplo pro meu E-Mail:leandrodefaria@gmail.com

Obrigado


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

03/12/2005

eu estou tentando enviar um arquivo compactado, mas o gmail não aceita anexo ZIP


GOSTEI 0
Massuda

Massuda

03/12/2005

...gmail não aceita anexo ZIP
Ele não aceita que tenha executáveis no ZIP.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

03/12/2005

isso mesmo massuda! eu havia passado os fontes e o exe. retirei o exe do zip e agora e envio foi concluído.


GOSTEI 0
Marco Salles

Marco Salles

03/12/2005

emerson , aproveitando a sua participação me esclareça por gentileza uma dúvida . Talves eu esteja fazendo alguma confusão :oops:

Se a configuração do seu Pc estiver no formato yyyy-MM-dd :arrow: no Grid aparecera esta configuração... Mas se mudar a configuração para
dd-MM-yyyy , :arrow: aparecera no Grid o Formato dd-MM-yyyy

Não seria isto , ou sera que estou fazendo confusão :cry: :cry: :cry:


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

03/12/2005

sim, deveria obedecer às configurações regionais, mas ao que parece a regra que está sendo obedecida é a do banco de dados ou do Delphi (variáveis ShortDateFormat, LongDateFormat, CurrecyDecimals, etc.)


GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

Emerson, recebi o exemplo e testei, seu exemplo realmente funciona, e o meu continua dando problema, como está dando o erro de Access Violation, deve ser alguma incompatibilidade do meu banco com essa linha de comando, o Banco que estou usando é o MySQL, eu vo fazer o seguinte, no Administrador do banco, eu vo tentar muda o fomato do campo para ´dd/mm/yyyy´.

Obrigado


GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

Pessoal, dei uma pesquisa, e parece que não tem como muda essa formatação da Data do MySQL, isso é padrão dele, teria mesmo que fazer essa alteração via programação, será que alguém mais alguma dica ??

Obrigado


GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

Pessoal, dei uma pesquisa, e parece que não tem como muda essa formatação da Data do MySQL, isso é padrão dele, teria mesmo que fazer essa alteração via programação, será que alguém mais alguma dica ??

Obrigado


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

03/12/2005

os bancos de dados tem suas particularidades. uma delas é com os campos data/hora. tente assim:

With QueryVAnuncios Do 
Begin 
  Close; 
  SQL.Clear; 
  SQL.Add(´SELECT NomeCliente,MAX(DataVeiculacao) DataVeiculacao FROM veiculacao´); 
  SQL.Add(´GROUP BY NomeCliente´); 
  SQL.Add(´ORDER BY NomeCliente´); 
  Open; 
  TSQLTimeStampField(fields[1]).DisplayFormat := ´dd/mm/yyyy´; 
End;


tavez o seu campo seja do tipo [b:662ee8ffd8]SQLTimeStampField[/b:662ee8ffd8] e não DateTimeField.


GOSTEI 0
Leandrosl

Leandrosl

03/12/2005

Emerson, testei e não funciono, está dando erro de Access Violation.

Obrigado


GOSTEI 0
POSTAR