Cómo hacer un select tomando en cuenta un rango de fechas?

11/01/2007 - 10:42 por Don Juan | Informe spam
Hola a todos
Tengo un campo DateTime y necesito hacer una selección de una fecha inicio a
una fecha final, estoy utilizando este código pero no funciona como debe:
Where (Convert(Char(10),T.Transac_DateTime,103) BETWEEN '01/01/2007' and
'11/01/2007')

Es decir, me salen fechas que datan aun de 2006. Debe haber algun método
para hacer esta selección sin tener que pasar a tipo char? Utilizo el
convert para tener solo el formado dd/MM/yyyy

Gracias de atemano.

Preguntas similare

Leer las respuestas

#1 Miguel egea
11/01/2007 - 12:38 | Informe spam
Eso te matará el rendimiento, hazlo así
Where t.Transac_Datetime between '20070101' and '20070111', siempre que
hagas casting, hazlo de la parte fija, nunca de un campo o penalizarás
tremendamente el rendimiento.

Saludos

"Don Juan" wrote in message
news:
Hola a todos
Tengo un campo DateTime y necesito hacer una selección de una fecha inicio
a una fecha final, estoy utilizando este código pero no funciona como
debe:
Where (Convert(Char(10),T.Transac_DateTime,103) BETWEEN '01/01/2007' and
'11/01/2007')

Es decir, me salen fechas que datan aun de 2006. Debe haber algun método
para hacer esta selección sin tener que pasar a tipo char? Utilizo el
convert para tener solo el formado dd/MM/yyyy

Gracias de atemano.



Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez
11/01/2007 - 14:50 | Informe spam
Si precisas incluir todos los movimientos del dia debes usar

Where t.Transac_Datetime >= '20070101' and t.Transac_Datetime < '20070112'



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)




"Miguel egea" wrote in message
news:%
Eso te matará el rendimiento, hazlo así
Where t.Transac_Datetime between '20070101' and '20070111', siempre que
hagas casting, hazlo de la parte fija, nunca de un campo o penalizarás
tremendamente el rendimiento.

Saludos

"Don Juan" wrote in message
news:
Hola a todos
Tengo un campo DateTime y necesito hacer una selección de una fecha
inicio a una fecha final, estoy utilizando este código pero no funciona
como debe:
Where (Convert(Char(10),T.Transac_DateTime,103) BETWEEN '01/01/2007' and
'11/01/2007')

Es decir, me salen fechas que datan aun de 2006. Debe haber algun método
para hacer esta selección sin tener que pasar a tipo char? Utilizo el
convert para tener solo el formado dd/MM/yyyy

Gracias de atemano.








Respuesta Responder a este mensaje
#3 Maxi
11/01/2007 - 14:52 | Informe spam
Muy buena puntualizacion :)


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Jose Mariano Alvarez"
escribió en el
mensaje news:
Si precisas incluir todos los movimientos del dia debes usar

Where t.Transac_Datetime >= '20070101' and t.Transac_Datetime <
'20070112'



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)




"Miguel egea" wrote in message
news:%
Eso te matará el rendimiento, hazlo así
Where t.Transac_Datetime between '20070101' and '20070111', siempre que
hagas casting, hazlo de la parte fija, nunca de un campo o penalizarás
tremendamente el rendimiento.

Saludos

"Don Juan" wrote in message
news:
Hola a todos
Tengo un campo DateTime y necesito hacer una selección de una fecha
inicio a una fecha final, estoy utilizando este código pero no funciona
como debe:
Where (Convert(Char(10),T.Transac_DateTime,103) BETWEEN '01/01/2007' and
'11/01/2007')

Es decir, me salen fechas que datan aun de 2006. Debe haber algun método
para hacer esta selección sin tener que pasar a tipo char? Utilizo el
convert para tener solo el formado dd/MM/yyyy

Gracias de atemano.












Respuesta Responder a este mensaje
#4 Don Juan
11/01/2007 - 15:26 | Informe spam
gracias a todos, pero aún me queda una duda
Cuando lo ejecuto desde el SQL server funciona de maravilla, pero cuando
pongo el mismo código para desplegarlo en mi DataGridView (VB) no funciona!
El error me dice:
.Net Framework Data Type: DateTime
Error Message: String was not recognized as a valid DataTime.
Visto que la columna Transac_DateTime es de tipo Datetime no reconoce el
formato '20070101' como fecha.
Cómo puedo remediar esto?
Gracias 1000.

"Miguel egea" escribió en el mensaje
news:%
Eso te matará el rendimiento, hazlo así
Where t.Transac_Datetime between '20070101' and '20070111', siempre que
hagas casting, hazlo de la parte fija, nunca de un campo o penalizarás
tremendamente el rendimiento.

Saludos

"Don Juan" wrote in message
news:
Hola a todos
Tengo un campo DateTime y necesito hacer una selección de una fecha
inicio a una fecha final, estoy utilizando este código pero no funciona
como debe:
Where (Convert(Char(10),T.Transac_DateTime,103) BETWEEN '01/01/2007' and
'11/01/2007')

Es decir, me salen fechas que datan aun de 2006. Debe haber algun método
para hacer esta selección sin tener que pasar a tipo char? Utilizo el
convert para tener solo el formado dd/MM/yyyy

Gracias de atemano.








Respuesta Responder a este mensaje
#5 Jose Mariano Alvarez
12/01/2007 - 02:31 | Informe spam
Estas pasandolo como parámetro de un SP?

Asegurate que se ejecute en el servidor.



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)




"Don Juan" wrote in message
news:%
gracias a todos, pero aún me queda una duda
Cuando lo ejecuto desde el SQL server funciona de maravilla, pero cuando
pongo el mismo código para desplegarlo en mi DataGridView (VB) no
funciona!
El error me dice:
.Net Framework Data Type: DateTime
Error Message: String was not recognized as a valid DataTime.
Visto que la columna Transac_DateTime es de tipo Datetime no reconoce el
formato '20070101' como fecha.
Cómo puedo remediar esto?
Gracias 1000.

"Miguel egea" escribió en el mensaje
news:%
Eso te matará el rendimiento, hazlo así
Where t.Transac_Datetime between '20070101' and '20070111', siempre que
hagas casting, hazlo de la parte fija, nunca de un campo o penalizarás
tremendamente el rendimiento.

Saludos

"Don Juan" wrote in message
news:
Hola a todos
Tengo un campo DateTime y necesito hacer una selección de una fecha
inicio a una fecha final, estoy utilizando este código pero no funciona
como debe:
Where (Convert(Char(10),T.Transac_DateTime,103) BETWEEN '01/01/2007' and
'11/01/2007')

Es decir, me salen fechas que datan aun de 2006. Debe haber algun método
para hacer esta selección sin tener que pasar a tipo char? Utilizo el
convert para tener solo el formado dd/MM/yyyy

Gracias de atemano.












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