Y Seguimos con las Fechas

30/12/2003 - 13:38 por RICARDO URIBE | Informe spam
Bueno ahora tengo un campo en donde guardo fechas y horas, pero cuando hago
una conuslta solo la hago por fechas
Por ejemplo:

SELECT * FROM Cotizaciones WHERE FechaEmision='" & dtpFechaEmision.Value
& "'"

Se que ahi no me va a devolver datos porque en los campos tambien hay horas,
por eso quisiera saber si se puede usar algo como el LIKE
para comparar solo con la fecha y no con la hora.

Gracias por su ayuda.

Tengan un Feliz Año Nuevo.

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
30/12/2003 - 13:57 | Informe spam
hola Ricardo.

Mira creo que este ejemplo te podria ser util

SELECT * FROM INVENTORY_TRANS WHERE CONVERT(VARCHAR(10),CREATE_DATE,102) '2003.12.01'

donde dice: Inventory_trans pone tu tabla
donde dice: Create_date pone tu campo

ademas de esto en estas paginas encontraras todo lo necesario para trabajar
bien con las fechas.

www.helpdna.net

www.portalsql.com

salu2

Maximiliano Damian Accotto


"RICARDO URIBE" escribió en el mensaje
news:
Bueno ahora tengo un campo en donde guardo fechas y horas, pero cuando


hago
una conuslta solo la hago por fechas
Por ejemplo:

SELECT * FROM Cotizaciones WHERE FechaEmision='" &


dtpFechaEmision.Value
& "'"

Se que ahi no me va a devolver datos porque en los campos tambien hay


horas,
por eso quisiera saber si se puede usar algo como el LIKE
para comparar solo con la fecha y no con la hora.

Gracias por su ayuda.

Tengan un Feliz Año Nuevo.


Respuesta Responder a este mensaje
#2 RICARDO URIBE
30/12/2003 - 14:14 | Informe spam
Otra vez me salvaste, gracias.


"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME>
escribió en el mensaje news:
hola Ricardo.

Mira creo que este ejemplo te podria ser util

SELECT * FROM INVENTORY_TRANS WHERE CONVERT(VARCHAR(10),CREATE_DATE,102) > '2003.12.01'

donde dice: Inventory_trans pone tu tabla
donde dice: Create_date pone tu campo

ademas de esto en estas paginas encontraras todo lo necesario para


trabajar
bien con las fechas.

www.helpdna.net

www.portalsql.com

salu2

Maximiliano Damian Accotto


"RICARDO URIBE" escribió en el mensaje
news:
> Bueno ahora tengo un campo en donde guardo fechas y horas, pero cuando
hago
> una conuslta solo la hago por fechas
> Por ejemplo:
>
> SELECT * FROM Cotizaciones WHERE FechaEmision='" &
dtpFechaEmision.Value
> & "'"
>
> Se que ahi no me va a devolver datos porque en los campos tambien hay
horas,
> por eso quisiera saber si se puede usar algo como el LIKE
> para comparar solo con la fecha y no con la hora.
>
> Gracias por su ayuda.
>
> Tengan un Feliz Año Nuevo.
>
>


Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
30/12/2003 - 14:28 | Informe spam
;)

El tema de las fechas es un lio si no estas acostumbrado, te paso este link
donde hay un hermoso articulo de como manejarlas

http://www.helpdna.net/bosqlfaq05.htm

tambien para que no se me ponga celoso Miguel ;) tenes su Web
http://www.portalsql.com/

donde en la parte de busqueda pones Fechas y veras varios articulos, el
primero es sobre Where con fechas (muy interesante de verdad)

salu2



Maximiliano Damian Accotto


"RICARDO URIBE" escribió en el mensaje
news:%
Otra vez me salvaste, gracias.


"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME>
escribió en el mensaje news:
> hola Ricardo.
>
> Mira creo que este ejemplo te podria ser util
>
> SELECT * FROM INVENTORY_TRANS WHERE CONVERT(VARCHAR(10),CREATE_DATE,102)
> '2003.12.01'
>
> donde dice: Inventory_trans pone tu tabla
> donde dice: Create_date pone tu campo
>
> ademas de esto en estas paginas encontraras todo lo necesario para
trabajar
> bien con las fechas.
>
> www.helpdna.net
>
> www.portalsql.com
>
> salu2
>
> Maximiliano Damian Accotto
>
>
> "RICARDO URIBE" escribió en el mensaje
> news:
> > Bueno ahora tengo un campo en donde guardo fechas y horas, pero cuando
> hago
> > una conuslta solo la hago por fechas
> > Por ejemplo:
> >
> > SELECT * FROM Cotizaciones WHERE FechaEmision='" &
> dtpFechaEmision.Value
> > & "'"
> >
> > Se que ahi no me va a devolver datos porque en los campos tambien hay
> horas,
> > por eso quisiera saber si se puede usar algo como el LIKE
> > para comparar solo con la fecha y no con la hora.
> >
> > Gracias por su ayuda.
> >
> > Tengan un Feliz Año Nuevo.
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Miguel Egea
30/12/2003 - 17:26 | Informe spam
jeje no me pongo celoso de salva nunca ;-)

Bueno en cualquier caso si que hay algo que gustaría comentar, los cast y
converts NO es bueno hacerlos en campos siempre que se pueda evitar, sí es
recomendable hacerlo en constantes, simplemente es una cuestión de
rendimiento veamos :

CASO 1_
select * From orders where orderdate='19960704'

(1 filas afectadas)

StmtText
-
|--Bookmark Lookup(BOOKMARK:([Bmk1000]),
OBJECT:([Northwind].[dbo].[Orders]))
|--Index Seek(OBJECT:([Northwind].[dbo].[Orders].[OrderDate]),
SEEK:([Orders].[OrderDate]=Convert([@1])) ORDERED FORWARD)


CASO 2

tmtText
-
select * From orders where convert(varchar(10),orderdate,102)='1996.07.04'

(1 filas afectadas)

StmtText
-
|--Bookmark Lookup(BOOKMARK:([Bmk1000]),
OBJECT:([Northwind].[dbo].[Orders]))
|--Index Scan(OBJECT:([Northwind].[dbo].[Orders].[OrderDate]),
WHERE:(Convert([Orders].[OrderDate])='1996.07.04'))


CONCLUSIONES

Si SQL tiene que recorrerse todo el índice podemos estar ante un problema
grande de rendimiento, (ni que hablar de bloqueos dependiendo del nivel de
aislamiento), estamos impidiendo al optimizador de consultas usar índices y
eso puede ser tremendamente negativo en nuestras aplicaciones.


FELIZ AÑO NUEVO y perdón por el coñazo de mensaje.
=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==


"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME>
escribió en el mensaje news:%
;)

El tema de las fechas es un lio si no estas acostumbrado, te paso este


link
donde hay un hermoso articulo de como manejarlas

http://www.helpdna.net/bosqlfaq05.htm

tambien para que no se me ponga celoso Miguel ;) tenes su Web
http://www.portalsql.com/

donde en la parte de busqueda pones Fechas y veras varios articulos, el
primero es sobre Where con fechas (muy interesante de verdad)

salu2



Maximiliano Damian Accotto


"RICARDO URIBE" escribió en el mensaje
news:%
> Otra vez me salvaste, gracias.
>
>
> "Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME>
> escribió en el mensaje news:
> > hola Ricardo.
> >
> > Mira creo que este ejemplo te podria ser util
> >
> > SELECT * FROM INVENTORY_TRANS WHERE


CONVERT(VARCHAR(10),CREATE_DATE,102)
> > > '2003.12.01'
> >
> > donde dice: Inventory_trans pone tu tabla
> > donde dice: Create_date pone tu campo
> >
> > ademas de esto en estas paginas encontraras todo lo necesario para
> trabajar
> > bien con las fechas.
> >
> > www.helpdna.net
> >
> > www.portalsql.com
> >
> > salu2
> >
> > Maximiliano Damian Accotto
> >
> >
> > "RICARDO URIBE" escribió en el mensaje
> > news:
> > > Bueno ahora tengo un campo en donde guardo fechas y horas, pero


cuando
> > hago
> > > una conuslta solo la hago por fechas
> > > Por ejemplo:
> > >
> > > SELECT * FROM Cotizaciones WHERE FechaEmision='" &
> > dtpFechaEmision.Value
> > > & "'"
> > >
> > > Se que ahi no me va a devolver datos porque en los campos tambien


hay
> > horas,
> > > por eso quisiera saber si se puede usar algo como el LIKE
> > > para comparar solo con la fecha y no con la hora.
> > >
> > > Gracias por su ayuda.
> > >
> > > Tengan un Feliz Año Nuevo.
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Miguel Egea
30/12/2003 - 17:28 | Informe spam
Lo que dices es absolutamente cierto, pero no tiene que ver con between,
sino con que en tu caso (y muy acertadamente), estás aplicando la conversión
a los valores constantes.
En cualquier caso yo no uso la función convert, menos si el formato de fecha
es el que pones yyyymmdd hh:mm:ss, sql lo entiende bien siempre
independientemente de configuracio´n.

Saludos
Miguel Egea
"Adrian Garcia" escribió en el mensaje
news:
Una pregunta,
Tienes un indice sobre la columna fecha? si es asi entonces SQL Server no


lo
utilizaria ya que estas aplicando una funcion de conversion a la columna.

Una opcion es utilizar el BETWEEN, por ejemplo

CREATE_DATE BETWEEN CONVERT(DATETIME, '2003.12.01 00:00:00') AND
CONVERT(DATETIME, '2003.12.01 23:59:59')

En este caso la funcion de conversión se ejecuta una sola vez y no por


cada
fila (mejor performance) y al mismo tiempo si tienes definido un indice
sobre el campo le das la chance a que el motor pueda seleccionarlo en la
resolucion de la consulta.

Saludos

Adrian D. Garcia
NDsoft


"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME>
wrote in message news:
> hola Ricardo.
>
> Mira creo que este ejemplo te podria ser util
>
> SELECT * FROM INVENTORY_TRANS WHERE CONVERT(VARCHAR(10),CREATE_DATE,102)
> '2003.12.01'
>
> donde dice: Inventory_trans pone tu tabla
> donde dice: Create_date pone tu campo
>
> ademas de esto en estas paginas encontraras todo lo necesario para
trabajar
> bien con las fechas.
>
> www.helpdna.net
>
> www.portalsql.com
>
> salu2
>
> Maximiliano Damian Accotto
>
>
> "RICARDO URIBE" escribió en el mensaje
> news:
> > Bueno ahora tengo un campo en donde guardo fechas y horas, pero cuando
> hago
> > una conuslta solo la hago por fechas
> > Por ejemplo:
> >
> > SELECT * FROM Cotizaciones WHERE FechaEmision='" &
> dtpFechaEmision.Value
> > & "'"
> >
> > Se que ahi no me va a devolver datos porque en los campos tambien hay
> horas,
> > por eso quisiera saber si se puede usar algo como el LIKE
> > para comparar solo con la fecha y no con la hora.
> >
> > Gracias por su ayuda.
> >
> > Tengan un Feliz Año Nuevo.
> >
> >
>
>


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