Convertir nvarchar a hora

Category: Transact-SQL 10 years ago
Buenas tardes de nuevo,

Resulta que tenemos un campo en nvarchar y guarda valores tal que:
02:35
12:34
etc...

Y ahora lo que queremos es calcular diferencia de horas y minutos entre esos valores.

Imagino que antes de calcular la diferencia tengo que pasarlo a algún tipo time, datetime, o no se,...

Me podéis ayudar??

Un saludo, y gracias de antemano
Like it on Facebook, +1 on Google, Tweet it or share this topic on other bookmarking websites.
  • Re: Convertir nvarchar a hora

    by » 10 years ago


    No entiendo bien como quieres calcular la diferencia, la diferencia del segundo registro con la del primer registro y después la del tercer registro con el segundo, etc?

  • Re: Convertir nvarchar a hora

    by » 10 years ago


    De dos columnas de horas, sólo sacar las que hay una diferencia de X minutos entre ellas. Creo que ya lo solucioné tomando varias precauciones:

    WHERE
    ISDATE(horaA)=1 and ISDATE(horaB)=1 AND
    (datediff(mi, cast(horaA as smalldatetime), cast(horaB as smalldatetime))>30)

    El ISDATE lo pongo por si existen valores NULL (que es el problema que tenia para que no me hiciera la conversión) o formatos no válidos de hora.

    Gracias aún así.

  • Re: Convertir nvarchar a hora

    by » 10 years ago


    Se ve bien, solo unos comentarios. Trata de no usar nulos en tus diseños de datos, porque afectan el uso de índices, mejor colocales un valor que identifiques como nulo.

    Otra, es que no es necesario que hagas el cast, porque sql server hace una conversión explicita.

    Por último, porque guardaste el tiempo en un nvarchar y no varchar?

    Saludos

  • Re: Convertir nvarchar a hora

    by » 10 years ago


    Gracias por los consejos.

    Mi gran problema es que la base de datos ya estaba así cuando comencé a trabajar. Y es una BBDD sobre un programa de una empresa externa que lo desarrolla de continuo por lo que a lo mucho, lo que puedo hacer es comunicarles a ellos que tomen estas consideraciones.

    Tb añadir que en la consulta he puesto que solo coja los que están entre 00:00 y 23:59. De esa manera si hay valores como: 05.00 en vez de 05:00 no los tendrá en cuenta. Ya que eso tb ocasiona error a la hora de calcular las diferencias horarias.

  • Re: Convertir nvarchar a hora

    by » 9 years ago


    No has intentado con
    convert(datetime,nombredelcampo,108)


    A lo mejor te sirve, el 108 es el formato que le quieres dar...
    Aqui hay una lista de formatos

You do not have permissions to reply to this topic.
Powered by CjForum