tablas registros minus funcion cual comparar comando coincidentes buscar sql sql-server-2005

registros - Cómo seleccionar filas para una fecha específica, ignorando el tiempo en SQL Server



cual es la funcion del comando minus (6)

Algo como esto:

select * from sales where salesDate >= ''11/11/2010'' AND salesDate < (Convert(datetime, ''11/11/2010'') + 1)

Dada una tabla con una columna de fecha y hora, ¿cómo consulto las filas donde la fecha coincide con el valor que especifico, pero ignora la porción de tiempo?

Por ejemplo, select * from sales where salesDate = ''11/11/2010''

Para esta consulta no nos importa el tiempo. Otras consultas requieren el componente de tiempo, por lo que no podemos almacenar solo el componente de fecha.

¡Gracias!


Prueba esto:

true select cast(salesDate as date) [date] from sales where salesDate = ''2010/11/11'' false select cast(salesDate as date) [date] from sales where salesDate = ''11/11/2010''


Puede eliminar el componente de tiempo al comparar:

SELECT * FROM sales WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, salesDate))) = ''11/11/2010''

Otro enfoque es cambiar el seleccionar para cubrir todo el tiempo entre el inicio y el final de la fecha:

SELECT * FROM sales WHERE salesDate BETWEEN ''11/11/2010 00:00:00.00'' AND ''11/11/2010 23:59:59.999''


Sé que ha pasado un tiempo con esta pregunta, pero solo estaba buscando la misma respuesta y encontré que esta parece ser la solución más simple:

select * from sales where datediff(dd, salesDate, ''20101111'') = 0

De hecho, lo uso más para encontrar cosas dentro del último día o dos, por lo que mi versión se ve así:

select * from sales where datediff(dd, salesDate, getdate()) = 0

Y cambiando el 0 por hoy a un 1, obtengo las transacciones de ayer, 2 es el día anterior, y así sucesivamente. Y si quieres todo durante la última semana, simplemente cambia los iguales a uno menor que o igual a:

select * from sales where datediff(dd, salesDate, getdate()) <= 7


select * from sales where dateadd(dd, datediff(dd, 0, salesDate), 0) = ''11/11/2010''


select * from sales where salesDate between ''11/11/2010'' and ''12/11/2010'' --if using dd/mm/yyyy

La forma más correcta de hacerlo:

DECLARE @myDate datetime SET @myDate = ''11/11/2010'' select * from sales where salesDate>=@myDate and salesDate<dateadd(dd,1,@myDate)

Si solo se especifica la fecha, significa la medianoche total. Si desea asegurarse de que los intervalos no se superpongan, cambie el intervalo con un par de >= y <

puede hacerlo dentro de una única declaración, pero es solo que el valor se usa dos veces.