Valor de Variável fornecida pelo usuário

22/07/2019

0

Boa tarde galera.

Sou novo por aqui e novo no SQL, estou querendo realizar uma consulta na qual retorne os valores de datas que estão entre duas datas que serão fornecidas pelo usuário. A ideia é que, se possível, seja aberto uma janela onde o usuário possa fornecer a Data_Inicial e Data_Final que serão carregadas em duas variáveis para serem usadas no select.
Rodson Oliveira

Rodson Oliveira

Responder

Posts

22/07/2019

Igor Ferreira

Boa noite,

Não compreendi sua pergunta...

Mas se você quer retornar o valor entre duas datas você pode utilizar o "DATEDIFF" onde: DATEDIFF(tipo, data inicial, data final), sendo que o "tipo" será: year, day, week, quarter e etc...

Você pode ver mais sobre aqui: https://docs.microsoft.com/pt-br/sql/t-sql/functions/datediff-transact-sql?view=sql-server-2017

Exemplo:
Utilizando "DAY" entre as datas 01/07/2019 até 31/07/2019 temos 30 dias
SELECT DATEDIFF(DAY, '2019-07-01 00:00:00', '2019-07-31 00:00:00') -- RETORNA 30 "DIAS"


Utilizando "WEEK" entre as datas 01/07/2019 até 31/07/2019 temos 4 semanas
SELECT DATEDIFF(WEEK, '2019-07-01 00:00:00', '2019-07-31 00:00:00') -- RETORNA 4 "SEMANAS"


Utilizando "YEAR" entre as datas 01/01/2005 até 22/07/2019 temos 14 ANOS
SELECT DATEDIFF(YEAR, '2005-01-01 00:00:00', '2019-07-22 00:00:00') -- RETORNA 14 "ANOS"


Utilizando "DAY" entre as datas 01/01/2005 até 22/07/2019 temos 5315 dias
SELECT DATEDIFF(DAY, '2005-01-01 00:00:00', '2019-07-22 00:00:00') -- RETORNA 5315 "DIAS"


Você também pode abreviar, como exemplo:
SELECT DATEDIFF(dd, '2019-07-01 00:00:00', '2019-07-31 00:00:00')[code]
SELECT DATEDIFF(d, '2019-07-01 00:00:00', '2019-07-31 00:00:00')
SELECT DATEDIFF(DAY, '2019-07-01 00:00:00', '2019-07-31 00:00:00')


Tudo é equivalente à "dia"
Responder

23/07/2019

Rodson Oliveira

Bom dia Igor, não seria a diferença entre dias. Digamos que tenhamos uma tabela de lançamentos financeiro, e quero retornar todos os lançamentos que existam entre duas datas, para tanto usaria o seguinte:

Select * From Lançamentos
Where Vencimento Betwen( Dt_Inicial, Dt_Final)

O que necessito é que a data inicial e final seja solicitada pela aplicação no momento da execução
Responder

23/07/2019

Jothaz

Sua aplicação é desenvolvida em qual tenologia?
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar