ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Data corte como realizar essa tafefa firebird[Resolvido]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Ter Nov 10, 2015 9:32 am    Assunto: Data corte como realizar essa tafefa firebird[Resolvido] Responder com Citação

Pessoal para calcular idade estou fazendo assim

Select DateDiff(Year, :DataNasc, Current_Date) Idade from ALUNOS

só que o cliente me pediu para que a data corte dele fosse 31/03 ou seja se o cliente tiver 9 anos incompleto fica com 8 só pra colocar os 9 no caso se for até 31/03 entendero pessoal?


Editado pela última vez por nildglan em Qua Nov 11, 2015 2:57 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Nov 10, 2015 10:02 am    Assunto: Responder com Citação

Bom dia,

Pelo que entendi seria o caso de utilizar o dia 31/03 do ano corrente no lugar da data atual, e acho que para isso seria melhor trocar o Current_Date por um parâmetro que receberia da aplicação o dia 31/03 do ano corrente já pronto.
Mas você também pode tentar via SQL mais ou menos da seguinte forma:

Código:
Select
    DateDiff(Year,
             DataNasc,
             DATEADD(YEAR,  EXTRACT(YEAR FROM CURRENT_DATE) - 2015, DATE '31-MAR-2015')) as Idade
from ALUNOS


Espero que ajude.


Editado pela última vez por imex em Seg Dez 04, 2023 11:35 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Ter Nov 10, 2015 10:27 am    Assunto: Responder com Citação

imex fiz assim e acho que vai da certo

IDADE = Cast((Cast('03/31/'||:vAnoTurma As Date) - DtNascimento) / 365 As Integer);
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Nov 10, 2015 1:17 pm    Assunto: Responder com Citação

Experimente fazer um teste alterando a data de nascimento de um aluno qualquer para 02/04/2006.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
nildglan
Colaborador
Colaborador


Registrado: Sábado, 16 de Agosto de 2008
Mensagens: 1564
Localização: Goianésia do Pará

MensagemEnviada: Ter Nov 10, 2015 2:12 pm    Assunto: Responder com Citação

imex do jeito que eu fiz com a data 02/04/2006 parace 9 anos e do jeito que vc fez também aparece 9 anos
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Nov 10, 2015 2:32 pm    Assunto: Responder com Citação

Experimente fazer um teste dessa forma:

Código:
Select
    DateDiff(Month,
             DataNasc,
             DATEADD(YEAR,  EXTRACT(YEAR FROM CURRENT_DATE) - 2015, DATE '31-MAR-2015')) / 12 as Idade
from ALUNOS


Ou se você passar o dia 31/03 do ano corrente como parâmetro como sugeri anteriormente:

Código:
Select
    DateDiff(Month,
             DataNasc,
             :DataRef) / 12 as Idade
from ALUNOS


Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB