Procedimiento Almacenado

01/12/2005 - 21:06 por Pablo Rodríguez [ProNet] | Informe spam
Hola grupo, trabajo con SQL 2000,
necesito hacer un parámetro que me devuelva la cantidad de
registros que tienen la fecha de hoy, pero tienen distinta
hora, probé usar getdate() pero como no coinciden con la hora,
entonces devuelve siempre 0.



SELECT COUNT(*) AS Cantidad
FROM tblMovimientos
WHERE Fecha = ????

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
01/12/2005 - 20:58 | Informe spam
Maxi,

Ojo con esto, porque si tienes indices no seran usados :S



Solo quiero refrasear lo que quicistes decir. Los indices no seran usados de
una forma optima. En el ejemplo que adjunte, veras que sql server usa el
indice PK_Orders, solo que hace un scan del indice en vez de un seek.


AMB

"Maxi" wrote:

Ojo con esto, porque si tienes indices no seran usados :S


Salu2
Maxi [MVP SQL SERVER]


"Dario R. Ayala" escribió en el mensaje
news:
> SELECT COUNT(*) AS Cantidad
> FROM tblMovimientos
> WHERE YEAR(Fecha) = 2005 and MONTH(Fecha) = 12 AND DAY(Fecha) = 1
>
> Saludos
>
>
> Dario R. Ayala
>
> Desarrollador Microsoft DCE 2005 2 estrellas
> Desarrollador Microsoft DCE 3 Estrellas
>
>
>
> Pablo Rodríguez [ProNet] wrote:
>> Hola grupo, trabajo con SQL 2000,
>> necesito hacer un parámetro que me devuelva la cantidad de
>> registros que tienen la fecha de hoy, pero tienen distinta
>> hora, probé usar getdate() pero como no coinciden con la hora,
>> entonces devuelve siempre 0.
>>
>>
>>
>> SELECT COUNT(*) AS Cantidad
>> FROM tblMovimientos
>> WHERE Fecha = ????
>>
>>



Respuesta Responder a este mensaje
#7 Alejandro Mesa
01/12/2005 - 21:01 | Informe spam
Correccion:

"index seek" en la primera sentencia "select", pero en cambio hace un "index
scan" (operacion mas lenta que el seek).



"index seek" en la primera sentencia "select", pero en cambio hace un "index
scan" (operacion mas lenta que el seek) en la segunda sentencia "select",
donde se manipula la columna "orderdate" y la cual es usada como llave en el
indice "OrderDate" (fijate en el resultado de sp_helpindex).


AMB

"Alejandro Mesa" wrote:

Dario,

Cuando manipulas las columnas que participan en la clausula "where", estas
evitando que sql server haga un uso optimo de los indices en caso de que
estos existan. Fijate en el script que adjunto, sql server decide hacer un
"index seek" en la primera sentencia "select", pero en cambio hace un "index
scan" (operacion mas lenta que el seek).

use northwind
go

exec sp_helpindex orders
go

set statistics profile on
go

declare @d datetime

set @d = '19980226'

select
*
from
dbo.orders
where
orderdate = @d

select
*
from
dbo.orders
where
year(orderdate) = 1998 and month(orderdate) = 2 and day(orderdate) = 26
go

set statistics profile off
go


AMB


"Dario R. Ayala" wrote:

> SELECT COUNT(*) AS Cantidad
> FROM tblMovimientos
> WHERE YEAR(Fecha) = 2005 and MONTH(Fecha) = 12 AND DAY(Fecha) = 1
>
> Saludos
>
>
> Dario R. Ayala
>
> Desarrollador Microsoft DCE 2005 2 estrellas
> Desarrollador Microsoft DCE 3 Estrellas
>
>
>
> Pablo Rodríguez [ProNet] wrote:
> > Hola grupo, trabajo con SQL 2000,
> > necesito hacer un parámetro que me devuelva la cantidad de
> > registros que tienen la fecha de hoy, pero tienen distinta
> > hora, probé usar getdate() pero como no coinciden con la hora,
> > entonces devuelve siempre 0.
> >
> >
> >
> > SELECT COUNT(*) AS Cantidad
> > FROM tblMovimientos
> > WHERE Fecha = ????
> >
> >
> >
>
Respuesta Responder a este mensaje
#8 Maxi
01/12/2005 - 21:10 | Informe spam
Si, correcto :-)


Salu2
Maxi [MVP SQL SERVER]


"Alejandro Mesa" escribió en el
mensaje news:
Maxi,

Ojo con esto, porque si tienes indices no seran usados :S



Solo quiero refrasear lo que quicistes decir. Los indices no seran usados
de
una forma optima. En el ejemplo que adjunte, veras que sql server usa el
indice PK_Orders, solo que hace un scan del indice en vez de un seek.


AMB

"Maxi" wrote:

Ojo con esto, porque si tienes indices no seran usados :S


Salu2
Maxi [MVP SQL SERVER]


"Dario R. Ayala" escribió en el mensaje
news:
> SELECT COUNT(*) AS Cantidad
> FROM tblMovimientos
> WHERE YEAR(Fecha) = 2005 and MONTH(Fecha) = 12 AND DAY(Fecha) = 1
>
> Saludos
>
>
> Dario R. Ayala
>
> Desarrollador Microsoft DCE 2005 2 estrellas
> Desarrollador Microsoft DCE 3 Estrellas
>
>
>
> Pablo Rodríguez [ProNet] wrote:
>> Hola grupo, trabajo con SQL 2000,
>> necesito hacer un parámetro que me devuelva la cantidad de
>> registros que tienen la fecha de hoy, pero tienen distinta
>> hora, probé usar getdate() pero como no coinciden con la hora,
>> entonces devuelve siempre 0.
>>
>>
>>
>> SELECT COUNT(*) AS Cantidad
>> FROM tblMovimientos
>> WHERE Fecha = ????
>>
>>



Respuesta Responder a este mensaje
#9 Dario R. Ayala
01/12/2005 - 21:14 | Informe spam
Maxi y Alejandro, gracias por la aclaración.
Salu2

Dario R. Ayala

Desarrollador Microsoft DCE 2005 2 estrellas
Desarrollador Microsoft DCE 3 Estrellas



Pablo Rodríguez [ProNet] wrote:
Hola grupo, trabajo con SQL 2000,
necesito hacer un parámetro que me devuelva la cantidad de
registros que tienen la fecha de hoy, pero tienen distinta
hora, probé usar getdate() pero como no coinciden con la hora,
entonces devuelve siempre 0.



SELECT COUNT(*) AS Cantidad
FROM tblMovimientos
WHERE Fecha = ????



Respuesta Responder a este mensaje
#10 Pablo Rodríguez [ProNet]
01/12/2005 - 21:58 | Informe spam
Muchas gracias!



"Pablo Rodríguez [ProNet]" escribió en el mensaje
news:%
Hola grupo, trabajo con SQL 2000,
necesito hacer un parámetro que me devuelva la cantidad de
registros que tienen la fecha de hoy, pero tienen distinta
hora, probé usar getdate() pero como no coinciden con la hora,
entonces devuelve siempre 0.



SELECT COUNT(*) AS Cantidad
FROM tblMovimientos
WHERE Fecha = ????

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida