Eu tenho uma tabela chamada Product_Sales
e ela contém dados como este
Product_ID | Sold_by | Qty | From_date | To_date
-----------+---------+-----+------------+-----------
3 | 12 | 7 | 2013-01-05 | 2013-01-07
6 | 22 | 14 | 2013-01-06 | 2013-01-10
8 | 11 | 9 | 2013-02-05 | 2013-02-11
Agora, qual é a consulta se eu quiser selecionar dados de vendas entre duas datas de um intervalo de datas?
Por exemplo, desejo selecionar dados de vendas de 2013-01-03
a 2013-01-09
.
Respostas:
Como você pode ver, existem duas maneiras de fazer as coisas:
Obviamente, a segunda maneira é muito mais simples (apenas dois casos contra quatro).
Seu SQL será semelhante a:
fonte
WHERE NOT
condição, virar os operadores e adicionar um igual também está fazendo o trabalho:SELECT * FROM Product_sales WHERE From_date <= @RangeTill OR To_date >= @RangeFrom
Você tem que cobrir todas as possibilidades. From_Date ou To_Date pode estar entre o seu intervalo de datas ou as datas de registro podem abranger todo o intervalo.
Se um de
From_date
ouTo_date
estiver entre as datas, ouFrom_date
for menor que a data de início eTo_date
for maior que a data de término; então esta linha deve ser retornada.fonte
Tente a seguinte consulta para obter datas entre o intervalo:
fonte
start_date
mas terminaram entrestart_date
eend_date
. Por outro lado, a questão não é clara o suficiente, eu acho, não temos ideia se devemos pegar vendas que estão estritamente entre datas dadas ou datas que incluem parcialmente o intervalo de datas, mas podem se estender de um lado ou do outro ou ambos? Então, o problema básico é que a questão não está clara, eu acho.fonte
Isso cobre todas as condições que você procura.
fonte
fonte
Tente por favor:
fonte
Apenas meus 2 centavos, acho que usar o formato "dd-MMM-aaaa" é mais seguro, pois o servidor db saberá o que você deseja, independentemente das configurações regionais no servidor. Caso contrário, você pode ter problemas em um servidor que tem suas configurações regionais de data como aaaa-dd-mm (por qualquer motivo)
Portanto:
Sempre funcionou bem para mim ;-)
fonte
Isso está funcionando em SQL_Server_2008 R2
fonte
fonte
Esta consulta irá ajudá-lo a:
fonte
fonte
Verifique esta consulta, criei esta consulta para verificar se a data de check-in coincide com alguma data de reserva
isso irá executar novamente os detalhes que estão sobrepostos, para obter os detalhes que não se sobrepõem e, em seguida, remover o 'NÃO' da consulta
fonte
Você também pode tentar usar os seguintes fragmentos:
fonte
Isso é fácil, use esta consulta para encontrar dados selecionados do intervalo de datas entre duas datas
fonte
Você deve comparar datas em sql da mesma forma que compara valores numéricos,
fonte
Aqui está uma consulta para encontrar todas as vendas de produtos que ocorreram durante o mês de agosto
Também adiciona uma declaração de caso para validar a consulta
fonte
fonte
isso é fácil, use esta consulta para encontrar o que deseja.
fonte