Tengo una tabla nombrada Product_Sales
y contiene datos 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
Ahora bien, ¿cuál es la consulta si quiero seleccionar datos de ventas entre dos fechas de un rango de fechas?
Por ejemplo, quiero seleccionar datos de ventas desde 2013-01-03
hasta 2013-01-09
.
Respuestas:
Como puede ver, hay dos formas de hacer las cosas:
Evidentemente, la segunda vía es mucho más sencilla (solo dos casos contra cuatro).
Su SQL se verá así:
fuente
WHERE NOT
condición, cambiar a los operadores y agregar un igual también está haciendo el trabajo:SELECT * FROM Product_sales WHERE From_date <= @RangeTill OR To_date >= @RangeFrom
Tienes que cubrir todas las posibilidades. From_Date o To_Date podría estar entre su rango de fechas o las fechas de registro podrían cubrir todo el rango.
Si una de
From_date
oTo_date
está entre las fechas, oFrom_date
es menor que la fecha de inicio yTo_date
es mayor que la fecha de finalización; entonces esta fila debería devolverse.fuente
Pruebe la siguiente consulta para obtener fechas entre el rango:
fuente
start_date
pero terminaron entrestart_date
yend_date
. Por otro lado, la pregunta no es lo suficientemente clara, supongo, no tenemos ni idea de si deberíamos tomar las ventas que son estrictamente entre fechas determinadas o fechas que incluyen parcialmente el rango de fechas, pero que pueden extenderse de un lado, del otro o de ambos. Entonces, el problema básico es que la pregunta no está clara, supongo.fuente
Esto cubre todas las condiciones que está buscando.
fuente
fuente
Por favor, inténtalo:
fuente
Solo mis 2 centavos, encuentro que usar el formato "dd-MMM-aaaa" es más seguro, ya que el servidor de base de datos sabrá lo que quiere independientemente de la configuración regional del servidor. De lo contrario, podría tener problemas en un servidor que tenga su configuración regional de fecha como aaaa-dd-mm (por cualquier motivo)
Así:
Siempre me ha funcionado bien ;-)
fuente
Esto funciona en SQL_Server_2008 R2
fuente
fuente
Esta consulta te ayudará a:
fuente
fuente
Verifique esta consulta, creé esta consulta para verificar si la fecha de registro coincide con las fechas de reserva
esto recuperará los detalles que se superponen, para obtener los detalles que no se superponen, luego eliminará el 'NO' de la consulta
fuente
También puede intentar usar los siguientes fragmentos:
fuente
Esto es fácil, use esta consulta para buscar datos seleccionados del rango de fechas entre dos fechas
fuente
Debe comparar fechas en sql al igual que compara valores numéricos,
fuente
Aquí hay una consulta para encontrar todas las ventas de productos que se realizaron durante el mes de agosto.
También agrega una declaración de caso para validar la consulta
fuente
fuente
esto es fácil, use esta consulta para encontrar lo que desea.
fuente