none
Duda, cambiar solo hora en campo datetime

    Question

  • Hola, buenas, aver si podeis echarme un cable,  porque estoy volviendome loca para resolver un problemilla...

    Tengo un campo datetime y necesito cambiar solo la hora, es decir tengo campos que tienen :

    06:57:00

    06:50:00

    y necesito que queden de la siguiente manera :

    08:57:00

    08:50:00

    Agradezco cualquier ayuda!!

    Thursday, November 22, 2012 5:04 PM

Answers

  • A ok.. ahora si ya comprendo, una forma es a través del comando STUFF() , observa:

    declare @tabla table( fecha datetime )
    
    insert into @tabla
    values('20121122 11:09:12'),('20121122 11:40:54'),('20121122 01:33:31'),('20121122 05:51:43')
    
    select *, STUFF( CONVERT( Varchar , fecha , 121 ) , 12 , 2 , '08' )
    from @tabla 

    Si tienes dudas, nos dices...

    SALUDOS !


    Sergio Sánchez Arias

    Friday, November 23, 2012 2:03 PM
  • Hola,

    Y porque a ese campo le restas las horas de ese mismo campo y le sumas 8 horas. 

    Victor Koch.

    Friday, November 23, 2012 2:49 PM

All replies

  • Hola Mayoko...

    Si no me equivoco solo quieres sumar horas a tu campo...

    puedes utilizar la función DATEADD() de la siguiente manera: 

    declare @tabla table( fecha datetime )
    
    insert into @tabla
    values('20121122 11:09'),('20121122 11:40')
    
    select *, DATEADD( HH, 2, fecha ) 
    from @tabla 

    Prueba y nos dices...

    SALUDOS!

     


    Sergio Sánchez Arias

    • Proposed as answer by Geri_ReshefMVP Thursday, November 22, 2012 5:34 PM
    Thursday, November 22, 2012 5:12 PM
  • Hola Mayoko..

    La respuesta q te dio Sergio es verdadera si lo q necesita es solo q te muestre con 2 horas demas la informacion, ahora, si lo q necesitas es modificar la inf  entonces has

    UPDATE <NOMBRE_TABLA>
    SET A1 = DATEADD (HH, 2 , A1)

    WHERE ...

    Thursday, November 22, 2012 8:06 PM
  • Hola, exactamente no seria sumar, porque por ejemplo tengo horas que seran

    3:43:00

    6:57:00

    7:57:00

    Entonces si se sumo 2 horas, las 3 serian las 5, las 6 las 8  y las 7 las 9.

    Y lo que necesitaria es modificar directamente que todas las horas fuesen 8.

    De momento para ir avanzando voy a crearme una rutina en visual basic que me sume la diferencia entre la hora que necesito y la que realmente es, nunca pense que cambiar algo que a priori me parecio simple se convirtiera en algo tan complicado !!

    Gracias!

    Friday, November 23, 2012 7:52 AM
  • A ok.. ahora si ya comprendo, una forma es a través del comando STUFF() , observa:

    declare @tabla table( fecha datetime )
    
    insert into @tabla
    values('20121122 11:09:12'),('20121122 11:40:54'),('20121122 01:33:31'),('20121122 05:51:43')
    
    select *, STUFF( CONVERT( Varchar , fecha , 121 ) , 12 , 2 , '08' )
    from @tabla 

    Si tienes dudas, nos dices...

    SALUDOS !


    Sergio Sánchez Arias

    Friday, November 23, 2012 2:03 PM
  • Hola,

    Y porque a ese campo le restas las horas de ese mismo campo y le sumas 8 horas. 

    Victor Koch.

    Friday, November 23, 2012 2:49 PM
  • buena esa victor, muy practico
    Friday, November 23, 2012 4:37 PM
  • mayoko solucionaste, cuentanos............
    Tuesday, November 27, 2012 10:14 PM