GETDATE

06/02/2006 - 19:13 por Maver | Informe spam
Hola no me funca GETDATE() con = lo quiero comparar con otra fecha y no
puedo va no me deja igualar si le pongo mayor o menor anda pero no me trae
nada en la consulta cuando le pongo = xq sera???

Preguntas similare

Leer las respuestas

#1 Guillermo Roldán
06/02/2006 - 19:26 | Informe spam
Mírate esto, por si te ayuda:

http://www.sqlgurus.org/dotnetnuke/...fault.aspx

Saludos,
Guillermo

"Maver" escribió en el mensaje
news:%
Hola no me funca GETDATE() con = lo quiero comparar con otra fecha y no
puedo va no me deja igualar si le pongo mayor o menor anda pero no me trae
nada en la consulta cuando le pongo = xq sera???


Respuesta Responder a este mensaje
#2 Manuel Vera
06/02/2006 - 19:31 | Informe spam
GetDate() devuelve una fecha completa con año, mes, dia, hora, minuto,
segundo y creo que milisegundo.
Si tu comparas una fecha grabada usando unicamente los datos de dia, mes y
año, NUNCA será igual a GetDate().
Deberás utilizar las funciones CONVERT() o CAST() para convertir el
resultado de GetDate() en un formato similar al de la otra fecha. Quitando
de esta forma los valores correspondientes de hora, minuto, segundo, etc.

Salu2
MV

"Maver" escribió en el mensaje
news:%
Hola no me funca GETDATE() con = lo quiero comparar con otra fecha y no
puedo va no me deja igualar si le pongo mayor o menor anda pero no me trae
nada en la consulta cuando le pongo = xq sera???


Respuesta Responder a este mensaje
#3 Maver
06/02/2006 - 19:37 | Informe spam
hola converti el tipo de dato de getdate a smalldatetime ke es el tipo de
dato de la fecha con la que lo estoy comparando pero asi y todo no me trae
resultados lo mas raro es ke utilizando < y > funciona la consulta solo no
me funciona con
Respuesta Responder a este mensaje
#4 Manuel Vera
06/02/2006 - 20:57 | Informe spam
Para que entiendas mejor lo que traté de decirte, realiza la siguiente
prueba:

select campo_que_deseas_comparar , getdate() , convert( varchar(10) ,
getdate() , <formato> )
from ..

Podras ver que aparecen 3 columnas con 3 valores distintos. Esos valores
nunca los podras comparar con la igualdad (=).
Esto se debe a que cada milisegundo cambia el valor devuelto por GetDate().
Juega con la funcion CONVERT a ambos lados de la igualdad, hasta que
obtengas los valores que deseas.

Salu2
MV

"Maver" escribió en el mensaje
news:
hola converti el tipo de dato de getdate a smalldatetime ke es el tipo de
dato de la fecha con la que lo estoy comparando pero asi y todo no me trae
resultados lo mas raro es ke utilizando < y > funciona la consulta solo no
me funciona con >

Respuesta Responder a este mensaje
#5 Alejandro Mesa
06/02/2006 - 22:58 | Informe spam
Manuel,

No es necesario jugar con la funcion "convert" en ambos lados de la
expresion para buscar las filas que tienen una fecha dada sin importar el
tiempo (hh:mm:ss.mmm). Para eso puedes usar el siguiente formato:

declare @d datetime

set @d = convert(char(8), getdate(), 112)

select *
from t1
where c1 >= @d and c1 < dateadd(day, 1, @d)
go

Esto quiere decir que seleccione todas las filas de la tabla "t1" donde el
valor de la columna "c1" es mayor o igual a '2006-02-06T00:00:00.000' y menor
que '2006-02-07T00:00:00.000'

No es buena practica manipular columnas en una expresion que aparece en la
clausula "where", pues corres el riesgo de que SQL Server no haga un uso
adecuado de los indices en caso de haber alguno por la columna en question.

Ejemplo:

use northwind
go

exec sp_helpindex [orders]
go

set showplan_text on
go

declare @d datetime

set @d = '19980505'

select *
from dbo.orders
where year(orderdate) = year(@d) and month(orderdate) = month(@d) and
day(orderdate) = day(@d)

select *
from dbo.orders
where orderdate = @d
go

set showplan_text off
go

Veras que en la primera sentencia, SQL Server hace un "index scan" del
indice pk_orders y en la segunda hace un "index seek".


AMB

"Manuel Vera" wrote:

Para que entiendas mejor lo que traté de decirte, realiza la siguiente
prueba:

select campo_que_deseas_comparar , getdate() , convert( varchar(10) ,
getdate() , <formato> )
from ..

Podras ver que aparecen 3 columnas con 3 valores distintos. Esos valores
nunca los podras comparar con la igualdad (=).
Esto se debe a que cada milisegundo cambia el valor devuelto por GetDate().
Juega con la funcion CONVERT a ambos lados de la igualdad, hasta que
obtengas los valores que deseas.

Salu2
MV

"Maver" escribió en el mensaje
news:
> hola converti el tipo de dato de getdate a smalldatetime ke es el tipo de
> dato de la fecha con la que lo estoy comparando pero asi y todo no me trae
> resultados lo mas raro es ke utilizando < y > funciona la consulta solo no
> me funciona con > >
>



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