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

#6 Carlos
07/02/2006 - 10:19 | Informe spam
Mirad la funcion DATEDIFF, que te permite comparar la parte del DATETIME que
querais.

Saludos.

"Alejandro Mesa" escribió:

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
#7 Manuel Vera
07/02/2006 - 15:12 | Informe spam
Gracias por la información Alejandro.
Revisaré mis codigos SQL a ver donde estoy aplicando mi estrategia para
corregirla.
MV
Respuesta Responder a este mensaje
#8 Maver
07/02/2006 - 19:36 | Informe spam
Gracias x las ideas al final converti ambos a "int" y asi los pude comparar.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida