none
Consulta Fecha SQLSERVER RRS feed

  • 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

    viernes, 2 de marzo de 2018 9:53

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:


    viernes, 2 de marzo de 2018 10:33
  • Gracias Jorge

    ruben

    • Marcado como respuesta Ruben Lezcano viernes, 2 de marzo de 2018 15:39
    viernes, 2 de marzo de 2018 15:39

Todas las respuestas

  • En mi sql server si funciona 

    pero en c# no


    ruben

    viernes, 2 de marzo de 2018 10:03
  • 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:


    viernes, 2 de marzo de 2018 10:33
  • 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

    viernes, 2 de marzo de 2018 11:14
  • Gracias Jorge

    ruben

    • Marcado como respuesta Ruben Lezcano viernes, 2 de marzo de 2018 15:39
    viernes, 2 de marzo de 2018 15:39