| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Ter Nov 10, 2015 9:32 am Assunto: Data corte como realizar essa tafefa firebird[Resolvido] |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Nov 10, 2015 10:02 am Assunto: |
|
|
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 |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Ter Nov 10, 2015 10:27 am Assunto: |
|
|
imex fiz assim e acho que vai da certo
IDADE = Cast((Cast('03/31/'||:vAnoTurma As Date) - DtNascimento) / 365 As Integer); |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Nov 10, 2015 1:17 pm Assunto: |
|
|
| Experimente fazer um teste alterando a data de nascimento de um aluno qualquer para 02/04/2006. |
|
| Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Ter Nov 10, 2015 2:12 pm Assunto: |
|
|
| 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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Nov 10, 2015 2:32 pm Assunto: |
|
|
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 |
|
 |
|