Quiero ejecutar las siguientes dos consultas SQL:
Tome el recuento de filas entre 1 Oct 2014 to 31 Dec 2014
. Para esto ejecuté esta consulta.
select count(*)
from table_name
where date_column > '30-Sep-2014 23:59:59.999' and date_column < '01-Jan-2015 00:00:00.000'
Por lo cual obtuve resultado 28674262
La segunda consulta es obtener el recuento de filas entre las 1 Jul 2014 to 31 Sep 2014
que ejecuté la siguiente consulta.
select count(*)
from table_name
WHERE date_column > '30-Jun-2014 23:59:59.999' and date_column < '01-Oct-2014 00:00:00.000'
y obtuve este resultado: 28296043
Ahora, para obtener el recuento de filas para el 1 Jul 2014 to 31 Dec 2014
período de tiempo, ejecuté la siguiente consulta.
select count(*)
from table_name
WHERE date_column > '30-Jun-2014 23:59:59.999' and date_column < '01-Jan-2015 00:00:00.000'
Esta consulta está dando resultado 57361505
.
Si agrego el resultado de la primera y la segunda consulta, debería dar el mismo recuento de filas que la tercera consulta, es decir, 57361505
pero obtengo 28674262
+ 28296043
=56970305
Me gustaría saber por qué hay diferencia entre los recuentos de filas. ¿Hay algún problema con mis consultas?
Parecería tener algunos registros, digamos 200, donde la fecha está entre '30 -Sep-2014 23: 59: 59.999 'y '01 -Oct-2014 00: 00: 00.000'. Esto es posible dependiendo de los tipos de valores de fecha / hora.
¡Deshágase de las marcas de tiempo! Son solo cosas confusas. Utilice estas condiciones:
where date_column >= '2014-10-01' and date_column < '2015-01-01'
where date_column >= '2014-07-01' and date_column < '2014-10-01'
where date_column >= '2014-07-01' and date_column < '2015-01-01'
En general, cuando use fechas, use comparaciones en la fecha sin componente de tiempo y use condiciones de desigualdad cuando sea apropiado.
También observe que cambié a un formato de fecha estándar ISO.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras