Recomendacion, manejo de fechas
Publicado por Isaías Islas (5072 intervenciones) el 28/05/2003 02:18:01
Hace unos dias, alguien pregunto "como sacar registros de
un dia en especial, sin tomar en cuenta la hora y los
minutos", yo presuroso, conteste que con un CONVERT o CAST
En una tabla que tiene 20 millones de registros, hice la
siguiente prueba:
select count(*) from total_contest
where convert(char(10), fd_fileinputdatetime, 112) =
20030525
Esta es su estadistica:
Table 'TOTAL_CONTEST'. Scan count 1, logical reads 95956,
physical reads 0, read-ahead reads 52190.
Se tardo 2 minutos en darme la informacion.
Senti que habia dado una "excelente solucion".
Hoy tuve el agrado de recibir la observacion de mi amigo y
compañero de estos foros, Miguel Egea, que lo que
habia "recomendado" era erroneo y para muestra, me pidio
que generara una llave (indice), solo con la columna de
FECHA, ya que la llave con la que estaba trabajando estaba
compuesta por otras 3 columnas (ocupando la FECHA, la 3a.
posicion).
Y que NO CONVIRTIERA la columna fecha, solo que indicara
mediante >= o < el rango de días para poder sacar la
información.
Aqui mi consulta:
select count(*) from total_contest
where fd_fileinputDateTime>='20030525'
and fd_fileinputdatetime<'20030526'
Aqui sus estadisticos:
Table 'TOTAL_CONTEST'. Scan count 1, logical reads 1016,
physical reads 1, read-ahead reads 0.
Esta vez se tardo 0 (CERO SEGUNDOS) en darme la misma
información.
Miguel, te lo dije y lo reitero, gracias por hacerme
volver en mis errores y poder corregirlos.
Saludos a todos.%
un dia en especial, sin tomar en cuenta la hora y los
minutos", yo presuroso, conteste que con un CONVERT o CAST
En una tabla que tiene 20 millones de registros, hice la
siguiente prueba:
select count(*) from total_contest
where convert(char(10), fd_fileinputdatetime, 112) =
20030525
Esta es su estadistica:
Table 'TOTAL_CONTEST'. Scan count 1, logical reads 95956,
physical reads 0, read-ahead reads 52190.
Se tardo 2 minutos en darme la informacion.
Senti que habia dado una "excelente solucion".
Hoy tuve el agrado de recibir la observacion de mi amigo y
compañero de estos foros, Miguel Egea, que lo que
habia "recomendado" era erroneo y para muestra, me pidio
que generara una llave (indice), solo con la columna de
FECHA, ya que la llave con la que estaba trabajando estaba
compuesta por otras 3 columnas (ocupando la FECHA, la 3a.
posicion).
Y que NO CONVIRTIERA la columna fecha, solo que indicara
mediante >= o < el rango de días para poder sacar la
información.
Aqui mi consulta:
select count(*) from total_contest
where fd_fileinputDateTime>='20030525'
and fd_fileinputdatetime<'20030526'
Aqui sus estadisticos:
Table 'TOTAL_CONTEST'. Scan count 1, logical reads 1016,
physical reads 1, read-ahead reads 0.
Esta vez se tardo 0 (CERO SEGUNDOS) en darme la misma
información.
Miguel, te lo dije y lo reitero, gracias por hacerme
volver en mis errores y poder corregirlos.
Saludos a todos.%
Valora esta pregunta


0