none
Cálculos con campos datetime RRS feed

  • Pregunta

  • Hola a todos,

        estoy trabado con unos cálculos, estoy seguro que es sencillo pero hoy no es uno de mis días.

        En una tabla tengo un campo datetime pero del cual solo me interesa la hora así que almaceno esto: '1900-01-01 16:00:00'. Tengo que tomar la hora y juntarla con el día actual, quedándome esto: '2013-10-14 16:00:00'. Finalmente a eso debo restarle n cantidad de horas (eso creo que lo he resuelto con dateadd(HH...).

        Cualquier ayuda es bienvenida.

        Muchas gracias.


    Mauricio - Copenhague - Dinamarca

    lunes, 14 de octubre de 2013 9:39

Respuestas

  • Me auto-respondo. Creo haberlo resuelto de esta forma:

    cast(CONVERT(varchar(10),GETDATE(),112) + ' ' + CONVERT(varchar(8), @pTime,108) as datetime)

    pero si hay una alternativa mejor me gustaría saberlo.

    Falta el dateadd, lo sé, pero eso ya lo tenía.

    Gracias.


    Mauricio - Copenhague - Dinamarca

    • Marcado como respuesta TDCSoftware lunes, 14 de octubre de 2013 11:05
    lunes, 14 de octubre de 2013 9:55
  • Proba este código:

    Declare	@Hora DateTime='19000101 16:00:00';
    Select	DateAdd(Day,DateDiff(Day,0,GetDate()),@Hora);
    En caso de tabla- cambia el parámetro @Hora en el nombre de la  columna.

    El castellano no es mi lengua materna. Discúlpenme por los errores gramaticales, y, si pueden, corríjanme en los comentarios, o por correo electrónico. ¡Muchas gracias! Blog: http://about.me/GeriReshef

    • Marcado como respuesta TDCSoftware lunes, 14 de octubre de 2013 11:05
    lunes, 14 de octubre de 2013 11:03

Todas las respuestas

  • Me auto-respondo. Creo haberlo resuelto de esta forma:

    cast(CONVERT(varchar(10),GETDATE(),112) + ' ' + CONVERT(varchar(8), @pTime,108) as datetime)

    pero si hay una alternativa mejor me gustaría saberlo.

    Falta el dateadd, lo sé, pero eso ya lo tenía.

    Gracias.


    Mauricio - Copenhague - Dinamarca

    • Marcado como respuesta TDCSoftware lunes, 14 de octubre de 2013 11:05
    lunes, 14 de octubre de 2013 9:55
  • Proba este código:

    Declare	@Hora DateTime='19000101 16:00:00';
    Select	DateAdd(Day,DateDiff(Day,0,GetDate()),@Hora);
    En caso de tabla- cambia el parámetro @Hora en el nombre de la  columna.

    El castellano no es mi lengua materna. Discúlpenme por los errores gramaticales, y, si pueden, corríjanme en los comentarios, o por correo electrónico. ¡Muchas gracias! Blog: http://about.me/GeriReshef

    • Marcado como respuesta TDCSoftware lunes, 14 de octubre de 2013 11:05
    lunes, 14 de octubre de 2013 11:03
  • Gracias Geri, mucho más simple.

    Mauricio - Copenhague - Dinamarca

    lunes, 14 de octubre de 2013 11:05