Valor de Variável fornecida pelo usuário

SQL Server

SQL

22/07/2019

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

Curtidas 0

Respostas

Igor Ferreira

Igor Ferreira

22/07/2019

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"
GOSTEI 0
Rodson Oliveira

Rodson Oliveira

22/07/2019

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
GOSTEI 0
Jothaz

Jothaz

22/07/2019

Sua aplicação é desenvolvida em qual tenologia?
GOSTEI 0
POSTAR