Problema con Getdate()

30/04/2009 - 16:10 por Angel Zapata | Informe spam
En una consulta estoy poniendo este codigo para tabular un dato pero no
funciona.

SUM(CASE dbo.Pedido_Cab.PcaFecha WHEN GETDATE() THEN 1 ELSE 0 END) AS
PedidosRealizado

en cambio si sustituyo GETDATE() por la fecha '30/04/2009' si funciona,

¿Alguien sabe por que?


Muchas gracias por todo

Angel Zapata

Preguntas similare

Leer las respuestas

#1 María
30/04/2009 - 16:19 | Informe spam
Debe ser porque incluye la hora.


"Angel Zapata" <a n g e l . z a p a t a @ g r u p o s h . e s> escribió en
el mensaje news:%
En una consulta estoy poniendo este codigo para tabular un dato pero no
funciona.

SUM(CASE dbo.Pedido_Cab.PcaFecha WHEN GETDATE() THEN 1 ELSE 0 END) AS
PedidosRealizado

en cambio si sustituyo GETDATE() por la fecha '30/04/2009' si funciona,

¿Alguien sabe por que?


Muchas gracias por todo

Angel Zapata

Respuesta Responder a este mensaje
#2 Carlos Sacristan
30/04/2009 - 16:37 | Informe spam
¿Qué mensaje de error te muestra? ¿Qué tipo de dato es PcaFecha?

Un saludo
-
www.navento.com
Servicios de Localización GPS

http://blogs.solidq.com/ES/ElRincon...fault.aspx

"Angel Zapata" <a n g e l . z a p a t a @ g r u p o s h . e s> escribió en
el mensaje news:%
En una consulta estoy poniendo este codigo para tabular un dato pero no
funciona.

SUM(CASE dbo.Pedido_Cab.PcaFecha WHEN GETDATE() THEN 1 ELSE 0 END) AS
PedidosRealizado

en cambio si sustituyo GETDATE() por la fecha '30/04/2009' si funciona,

¿Alguien sabe por que?


Muchas gracias por todo

Angel Zapata

Respuesta Responder a este mensaje
#3 Angel Zapata
30/04/2009 - 16:48 | Informe spam
El tipo de dato es Datetime, he probado tambien haciendo la conversion
siguiente

SUM(CASE CONVERT(DATETIME, dbo.Pedido_Cab.PcaFecha, 102) WHEN
CONVERT(DATETIME, GETDATE(), 102) THEN 1 ELSE 0 END) AS PedidosRealizado


Y tampoco muestra los resultados correctos.

Muchas gracias


"Angel Zapata" <a n g e l . z a p a t a @ g r u p o s h . e s> escribió en
el mensaje news:%
En una consulta estoy poniendo este codigo para tabular un dato pero no
funciona.

SUM(CASE dbo.Pedido_Cab.PcaFecha WHEN GETDATE() THEN 1 ELSE 0 END) AS
PedidosRealizado

en cambio si sustituyo GETDATE() por la fecha '30/04/2009' si funciona,

¿Alguien sabe por que?


Muchas gracias por todo

Angel Zapata

Respuesta Responder a este mensaje
#4 Carlos Sacristan
30/04/2009 - 17:02 | Informe spam
Pensé que te estaba dando un error.

Usa la función DATEDIFF para ese tipo de comparaciones.

Un saludo
-
www.navento.com
Servicios de Localización GPS

http://blogs.solidq.com/ES/ElRincon...fault.aspx

"Angel Zapata" <a n g e l . z a p a t a @ g r u p o s h . e s> escribió en
el mensaje news:uWsT$
El tipo de dato es Datetime, he probado tambien haciendo la conversion
siguiente

SUM(CASE CONVERT(DATETIME, dbo.Pedido_Cab.PcaFecha, 102) WHEN
CONVERT(DATETIME, GETDATE(), 102) THEN 1 ELSE 0 END) AS PedidosRealizado


Y tampoco muestra los resultados correctos.

Muchas gracias


"Angel Zapata" <a n g e l . z a p a t a @ g r u p o s h . e s> escribió en
el mensaje news:%
En una consulta estoy poniendo este codigo para tabular un dato pero no
funciona.

SUM(CASE dbo.Pedido_Cab.PcaFecha WHEN GETDATE() THEN 1 ELSE 0 END) AS
PedidosRealizado

en cambio si sustituyo GETDATE() por la fecha '30/04/2009' si funciona,

¿Alguien sabe por que?


Muchas gracias por todo

Angel Zapata





Respuesta Responder a este mensaje
#5 Alejandro Mesa
30/04/2009 - 17:09 | Informe spam
Angel,

Debes truncar el tiempo de cada lado. Si estas guardando solo la fecha,
entonces debes truncar el tiempo en el resultado de "getdate()".

case when dateadd([day], datediff([day], '19000101', PcaFecha), '19000101')
= dateadd([day], datediff([day], '19000101', getdate()), '19000101') then 1
else 0 end

case when PcaFecha = dateadd([day], datediff([day], '19000101', getdate()),
'19000101') then 1 else 0 end


La conversion que usastes no es util, puesto que estas convirtiendo de
datetime a datetime.

Ve la differencia en esta select.

SELECT
CONVERT(DATETIME, GETDATE(), 102),
CONVERT(VARCHAR(10), GETDATE(), 102),
CONVERT(DATETIME, '20090430', 102)
GO


AMB


"Angel Zapata" wrote:

El tipo de dato es Datetime, he probado tambien haciendo la conversion
siguiente

SUM(CASE CONVERT(DATETIME, dbo.Pedido_Cab.PcaFecha, 102) WHEN
CONVERT(DATETIME, GETDATE(), 102) THEN 1 ELSE 0 END) AS PedidosRealizado


Y tampoco muestra los resultados correctos.

Muchas gracias


"Angel Zapata" <a n g e l . z a p a t a @ g r u p o s h . e s> escribió en
el mensaje news:%
> En una consulta estoy poniendo este codigo para tabular un dato pero no
> funciona.
>
> SUM(CASE dbo.Pedido_Cab.PcaFecha WHEN GETDATE() THEN 1 ELSE 0 END) AS
> PedidosRealizado
>
> en cambio si sustituyo GETDATE() por la fecha '30/04/2009' si funciona,
>
> ¿Alguien sabe por que?
>
>
> Muchas gracias por todo
>
> Angel Zapata
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida