error con select y smalldatetime

13/01/2005 - 18:30 por jaime | Informe spam
hola, tengo la siguiente sentencia:
SELECT * FROM CARTAS WHERE codigo = 15 and FECHA
BETWEEN '10/10/2003' AND '10/10/2003'
no me muestra registros a pesar que hay registros con esa
fecha, cuando reeplazo el between con:
BETWEEN '10/10/2003' AND '11/10/2003'
ahi si me muestra datos, me he fijado en la fecha y tiene
el siguiente dato "2003-10-10 15:46:00", he hecho la misma
consulta con fechas que tienen la estructura: yyyy-mm-dd
00:00:00, y si me muestra datos, como puedo hacer a la
hora de ejecutar el select me ignore la parte time del
campo smalldatetime.
de antemano gracias

Preguntas similare

Leer las respuestas

#1 ulises
13/01/2005 - 19:05 | Informe spam
Usa :

fecha BETWEEN '20031010 00:00:00.000'
AND '20031010 23:59:59.999'

Saludos,
Ulises

hola, tengo la siguiente sentencia:
SELECT * FROM CARTAS WHERE codigo = 15 and FECHA
BETWEEN '10/10/2003' AND '10/10/2003'
no me muestra registros a pesar que hay registros con esa
fecha, cuando reeplazo el between con:
BETWEEN '10/10/2003' AND '11/10/2003'
ahi si me muestra datos, me he fijado en la fecha y tiene
el siguiente dato "2003-10-10 15:46:00", he hecho la misma
consulta con fechas que tienen la estructura: yyyy-mm-dd
00:00:00, y si me muestra datos, como puedo hacer a la
hora de ejecutar el select me ignore la parte time del
campo smalldatetime.
de antemano gracias
.

Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP]
13/01/2005 - 19:06 | Informe spam
USE tempdb
GO

CREATE TABLE fecha (valor datetime)
GO

INSERT fecha VALUES (getdate())
INSERT fecha VALUES (getdate()+1)

SELECT * FROM fecha
WHERE CONVERT(char(8), valor, 112) BETWEEN '20050113' AND '20050114'

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"jaime" wrote in message
news::
hola, tengo la siguiente sentencia:
SELECT * FROM CARTAS WHERE codigo = 15 and FECHA
BETWEEN '10/10/2003' AND '10/10/2003'
no me muestra registros a pesar que hay registros con esa
fecha, cuando reeplazo el between con:
BETWEEN '10/10/2003' AND '11/10/2003'
ahi si me muestra datos, me he fijado en la fecha y tiene
el siguiente dato "2003-10-10 15:46:00", he hecho la misma
consulta con fechas que tienen la estructura: yyyy-mm-dd
00:00:00, y si me muestra datos, como puedo hacer a la
hora de ejecutar el select me ignore la parte time del
campo smalldatetime.
de antemano gracias
Respuesta Responder a este mensaje
#3 Isaías
14/01/2005 - 01:43 | Informe spam
Gustavo

Alguna vez hice pruebas con el CONVERT(CHAR(8), FECHA,
112) y la verdad de que es poco eficiente en una
considerable cantidad de registros, comparado contra:

SELECT * FROM MyTabla
WHERE MyFecha >= '01/13/2005' AND MyFecha < '01/14/2005'

O bien, le recomendaria a nuestro amigo, utilizar el
formato:

SELECT * FROM MyTabla
WHERE MyFecha >= '20050113' AND MyFecha < '20050114'
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida