SQL - seleccion entre fechas datetime

   
Vista:

seleccion entre fechas datetime

Publicado por Leonardo (4 intervenciones) el 21/08/2012 16:56:47
hola estimados/as buenos dias....
he intentado hacer una consulta para fechas de tipo datetime y siempre me dice esto
Error al convertir una cadena de caracteres en fecha y/u hora.
la consulta es

SELECT
ID, GuiaNro, item, Nro, detalleID, Fecha
FROM detallesguia
WHERE (Fecha>= '2012 - 08 - 01%')

los datos que muestra la tabla sin condicion where fecha es esta
ID GuiaNro Item Nro detalleID Fecha
37 23954 1 1 1 2012-04-23 00:00:00.000
39 259036 4 1 1 2012-04-23 00:00:00.000
72 186345 2 1 1 2012-04-23 00:00:00.000
72 186344 2 1 1 2012-04-23 00:00:00.000
72 186345 1 1 1 2012-04-23 00:00:00.000
90 189556 1 1 1 2012-04-23 00:00:00.000

he leido en algunos foros y me dicen que tengo que convertir los datos con una consulta.. lo he intentado pero se me dificulta me podrian ayudar con esto?


desde ya muchas gracias

saludos cordiales
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

seleccion entre fechas datetime

Publicado por leonardo_josue (880 intervenciones) el 21/08/2012 18:09:34
Hola Leonardo:

En primer lugar, QUÉ BASE DE DATOS ESTÁS UTILIZANDO. Este es tu primer mensaje así que vale la pena que tomes en cuenta mencionar en tus futuros post's siempre este detalle. Aunque todas las BD's utilizan SQL como lenguaje de consultas, existen diferencias importantes en su sintaxis sobre todo cuando se trata del manejo de fechas... además las funciones suelen ser diferentes en cada motor.

En cuanto a tu problema, creo que estás confundiendo el concepto del LIKE en cadenas y quieres aplicarlo a fechas... aunque las fechas se manejan entre comillas NO SON CADENAS, por lo tanto el operador (%) no aplica... además, no los ESPACIOS EN BLANCO también pueden afectar... el formato de fecha ANSI estandar que utilizan las mayoría de los DBMS es (yyyy-mm-dd hh:mi:ss) observa cuidadosamente que el único espacio en blanco es el que separa la fecha de la hora... no es lo mismo poner

1
2
3
'2012 - 08 - 01'
a
'2012-08-01'


A reserva de que nos digas qué BD estás utilizando, podrías probar la consulta de la siguiente manera:

1
2
3
4
SELECT
ID, GuiaNro, item, Nro, detalleID, Fecha
FROM detallesguia
WHERE (Fecha>= '2012-08-01')


Es decir, quitando todos los espacios en blanco de la fecha y el caracter (%). Haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

seleccion entre fechas datetime

Publicado por Leonardo (4 intervenciones) el 21/08/2012 21:49:32
Estimado gracias por responder
disculpa se me escapo ese detalle uso MS sql server 2008 tambien habia intentado usar el ejemplo que me acabas de dar pero tampoco me funciona me arroja todas las fechas

saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

seleccion entre fechas datetime

Publicado por leonardo_josue (880 intervenciones) el 21/08/2012 23:16:38
Hola de nuevo Leonardo:

En realidad creo que la consulta debería funcionar, pero no puedo asegurarlo porque en estos momentos no tengo instalado en mi equipo alguna version de SQL Server... pero el hecho de que ahora no te marque errores sino que no está filtrando información me hace sospechar que el problema viene con los datos... sería conveniente que nos pongas algunos datos de ejemplo de tu tabla, que postees la estructura completa de tu tabla (si puedes colocar el codigo SQL que utilizaste sería fabuloso) y con eso podríamos darte alguna otra alternativa.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

seleccion entre fechas datetime

Publicado por Leonardo (4 intervenciones) el 22/08/2012 01:32:53
Si de cierto modo la consulta no da errores, funciona pero no hace el filtro que necesito el codigo generador no lo tengo ahora no se si te sirve que te linkee unos pantallazos la 1° corresponde a las propiedades de la tabla y la 2° corresponde al detalle del atributo fecha.

http://www.freeimagehosting.net/fklno

http://www.freeimagehosting.net/bnrlu

aqui un ejemplo de los datos que almacena mi tabla

9 35300 1 1 1 2012-04-24 00:00:00.000 1753-01-01 12:04:40.000 1753-01-01 00:15:00.000 200 1 rgonzalez
12 35308 1 1 1 2012-04-24 00:00:00.000 1753-01-01 12:05:18.000 1753-01-01 00:15:00.000 200 1 rgonzalez
13 9779 1 1 1 2012-04-24 00:00:00.000 1753-01-01 12:05:46.000 1753-01-01 00:15:00.000 200 1 rgonzalez
13 9779 3 1 1 2012-06-11 00:00:00.000 1753-01-01 12:58:08.000 1753-01-01 00:15:00.000 280 1 rgonzalez
13 9779 4 1 1 2012-07-27 00:00:00.000 1753-01-01 12:57:40.000 1753-01-01 00:15:00.000 280 1 rgonzalez
15 5243 1 1 1 2012-04-24 00:00:00.000 1753-01-01 12:06:13.000 1753-01-01 00:15:00.000 200 1 rgonzalez
18 23006 1 1 1 2012-05-22 00:00:00.000 1753-01-01 09:05:17.000 1753-01-01 00:15:00.000 200 1 rgonzalez
18 23006 2 1 1 2012-05-18 00:00:00.000 1753-01-01 12:44:23.000 1753-01-01 00:15:00.000 200 1 rgonzalez
18 23006 3 1 1 2012-05-30 00:00:00.000 1753-01-01 16:42:02.000 1753-01-01 00:15:00.000 280 1 rgonzalez

saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

seleccion entre fechas datetime

Publicado por deneg_nhj (4 intervenciones) el 22/08/2012 01:59:11
Prueba con esta sintaxis

1
convert(datetime,fecha,103) = '2012-08-01'


También puedes probar con la función Cast

Saludos!

www.sgh.com.mx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

seleccion entre fechas datetime

Publicado por Isaias (691 intervenciones) el 22/08/2012 17:20:04
Te reocomiendo que utilices los 2 foros que hay de SQL Server

No es necesario una conversion, tu query debe funcionar si utilizas codigo ANSI para tus fechas.


WHERE (Fecha >= '20120801')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

seleccion entre fechas datetime

Publicado por Leonardo (4 intervenciones) el 30/08/2012 17:29:09
Estimados muchas gracias disculpen por no ingresar antes me sirvio la respuesta de isaias
tambien gracias por las recomendaciones
en general Gracias

Saludos Cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar