Formatação de Datas
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
Obrigado
Leandrosl
Curtidas 0
Melhor post
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´;
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
03/12/2005
Alterar as configuraçoes regionais não resilve ????
:arrow:
se resolver dá para fazer isto via programação
:arrow:
se resolver dá para fazer isto via programação
GOSTEI 0
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
Obrigado
GOSTEI 0
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;
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
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
03/12/2005
Emerson coloquei o Fields[1], e continua dando o mesmo erro.
Obrigado
Obrigado
GOSTEI 0
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.
porque eu testei e não deu erro algum.
GOSTEI 0
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
Obrigado
GOSTEI 0
Emerson Nascimento
03/12/2005
eu estou tentando enviar um arquivo compactado, mas o gmail não aceita anexo ZIP
GOSTEI 0
Massuda
03/12/2005
...gmail não aceita anexo ZIP
Ele não aceita que tenha executáveis no ZIP.GOSTEI 0
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
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:
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
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
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
Obrigado
GOSTEI 0
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
Obrigado
GOSTEI 0
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
Obrigado
GOSTEI 0
Emerson Nascimento
03/12/2005
os bancos de dados tem suas particularidades. uma delas é com os campos data/hora. tente assim:
tavez o seu campo seja do tipo [b:662ee8ffd8]SQLTimeStampField[/b:662ee8ffd8] e não DateTimeField.
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
03/12/2005
Emerson, testei e não funciono, está dando erro de Access Violation.
Obrigado
Obrigado
GOSTEI 0