Principales respuestas
Consulta Fecha SQLSERVER

Pregunta
-
Amigos tengo el siguiente error
SELECT [pedido] ,[Tarea] ,[cliente] ,[usuario] ,[FechaIni] ,[FechaFin] ,[Lineas_pedido] ,[Lineas_Escaneadas] ,[TotPaquetes] ,[TotCajas] ,[TotTiempo] FROM [BDDMOVIL].[dbo].[vst_Tiempo_Todas] where usuario ='ming' and [FechaFin] BETWEEN '20180301' AND dateadd(day,1, '20180301' )
Como puedo solucionarlo
saludos
ruben
Respuestas
-
Buenas ruben
Parece que hay algún problema en el casteo de string a datetime, en la foto que has puesto de SQL también te da el error, prueba haciendo el where así:
where usuario ='ming' and [FechaFin] BETWEEN Cast('20180301' as datetime) AND dateadd(day,1, Cast('20180301' as datetime))
Eso debería hacer que cuando ejecutas la consulta desde el Management Studio, funcione, seguramente en c# falle porque fecha_desde y fecha_hasta sean strings, con el mismo formato que tu ejemplo en el Management, si esto es así, cambia el where de tu consulta en c# por esto:
where usuario = @operador and [FechaFin] >= Cast(@desde as datetime) and [FechaFin] < Cast(@hasta as datetime) and tipo_tarea=5
En cualquier caso, si usas consultas parametrizadas, te recomendaría que como parámetro pases un objeto del mismo tipo que esperas en la consulta, es decir, si esperas un tipo datetime, que fecha_desde y fecha_hasta, sean datetimes, eso facilita mucho el trabajo.
Nos comentas el resultado
Atte
No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.
Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:
- Editado Jorge TurradoMVP viernes, 2 de marzo de 2018 10:35
- Marcado como respuesta Ruben Lezcano viernes, 2 de marzo de 2018 15:39
-
Gracias Jorge
ruben
- Marcado como respuesta Ruben Lezcano viernes, 2 de marzo de 2018 15:39
Todas las respuestas
-
-
Buenas ruben
Parece que hay algún problema en el casteo de string a datetime, en la foto que has puesto de SQL también te da el error, prueba haciendo el where así:
where usuario ='ming' and [FechaFin] BETWEEN Cast('20180301' as datetime) AND dateadd(day,1, Cast('20180301' as datetime))
Eso debería hacer que cuando ejecutas la consulta desde el Management Studio, funcione, seguramente en c# falle porque fecha_desde y fecha_hasta sean strings, con el mismo formato que tu ejemplo en el Management, si esto es así, cambia el where de tu consulta en c# por esto:
where usuario = @operador and [FechaFin] >= Cast(@desde as datetime) and [FechaFin] < Cast(@hasta as datetime) and tipo_tarea=5
En cualquier caso, si usas consultas parametrizadas, te recomendaría que como parámetro pases un objeto del mismo tipo que esperas en la consulta, es decir, si esperas un tipo datetime, que fecha_desde y fecha_hasta, sean datetimes, eso facilita mucho el trabajo.
Nos comentas el resultado
Atte
No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.
Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:
- Editado Jorge TurradoMVP viernes, 2 de marzo de 2018 10:35
- Marcado como respuesta Ruben Lezcano viernes, 2 de marzo de 2018 15:39
-
hola
las variables fecha_desde y fecha_hasta de que tipo son? porque deberian ser DateTime
o sino usar
cmdD.Parameters.AddWithValues("@desde", Convert.ToDateTime(fecha_desde))
tienes que asegurarte que asignas una fecha valida
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Gracias Jorge
ruben
- Marcado como respuesta Ruben Lezcano viernes, 2 de marzo de 2018 15:39