Usuário com melhor resposta
Calculo de data

Pergunta
-
Olá a todos.
Sou novo na area de programacao no banco de dados e gostaria de uma orientacao.
Preciso desenvolver um relatorio onde sera apresentado se um determinado produto já possui 1/3 ou 2/3 para o vencimento.
Tenho as seguintes variaveis.
Data Atual, Data da Validade e ainda tenho no produto a validade em dias.
Desde já agradeço a atençao de todos
Eduardo
Eduardo Augusto
Respostas
-
Eduardo, de uma olhada no exemplo que criei, acredito que seja somente adaptar a sua estrutura:
create table #temp (Produto varchar(100),data_Fabricacao datetime, validade datetime) insert into #temp values ('Teste',GETDATE() - 30, GETDATE() + 30), ('Teste 2', GETDATE() - 30, GETDATE() + 60), ('Teste 3', GETDATE() - 30, GETDATE() + 90) select * from #temp select Produto, data_Fabricacao, validade, tempo_Restante = case when (DATEDIFF(Day,GETDATE(),validade) * 100) / DATEDIFF(Day,data_Fabricacao,validade) < 33 then 'Não chegou a 1/3' when (DATEDIFF(Day,GETDATE(),validade) * 100) / DATEDIFF(Day,data_Fabricacao,validade) between 33 and 66 then 'Ja passou 1/3' when (DATEDIFF(Day,GETDATE(),validade) * 100) / DATEDIFF(Day,data_Fabricacao,validade) > 66 then 'Ja passou 2/3' end from #temp
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Eduardo.Augusto sexta-feira, 19 de abril de 2013 12:35
Todas as Respostas
-
Eduardo, de uma olhada no exemplo que criei, acredito que seja somente adaptar a sua estrutura:
create table #temp (Produto varchar(100),data_Fabricacao datetime, validade datetime) insert into #temp values ('Teste',GETDATE() - 30, GETDATE() + 30), ('Teste 2', GETDATE() - 30, GETDATE() + 60), ('Teste 3', GETDATE() - 30, GETDATE() + 90) select * from #temp select Produto, data_Fabricacao, validade, tempo_Restante = case when (DATEDIFF(Day,GETDATE(),validade) * 100) / DATEDIFF(Day,data_Fabricacao,validade) < 33 then 'Não chegou a 1/3' when (DATEDIFF(Day,GETDATE(),validade) * 100) / DATEDIFF(Day,data_Fabricacao,validade) between 33 and 66 then 'Ja passou 1/3' when (DATEDIFF(Day,GETDATE(),validade) * 100) / DATEDIFF(Day,data_Fabricacao,validade) > 66 then 'Ja passou 2/3' end from #temp
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Eduardo.Augusto sexta-feira, 19 de abril de 2013 12:35
-