none
Error Arithmetic overflow error converting expression to data type datetime RRS feed

  • Pregunta

  • Hola, tengo una consulta

    Me sale el siguiente error al ejecutar lo siguiente:

    UPDATE A

    SET ant= cast(('2020-10-30'-conver(datetime, fecha)) as int)

    el campo ANT es INT y el campo FECHA es DATE

    martes, 24 de noviembre de 2020 19:39

Todas las respuestas

  • Hola Code_a:

    Y ¿cuál es el objetivo de esa update?.

    El campo Ant es int, por tanto no puede recibir una fecha.

    Puedes hacer lo siguiente:

    Set DateFormat Ymd;
    
    Declare @Fecha As DateTime = '2020-10-30';
    
    Select @Fecha
    	 , Cast(Cast(@Fecha As Float) As Int) As [datetime como int]
    	 , Cast(44132 As DateTime) As [verificacion del resultado];


    Por tanto podrías hacer:

    UPDATE A
    	SET ant= Cast(Cast(cast('2020-10-30' as datetime) As Float) As Int)
    	FROM tuTabla As A

    Otra opción si solo quieres la fecha, es alimentarlo con las partes. Multiplicas el año por 10.000, el mes por 100 y sumas año+mes+dia

    Set DateFormat Ymd;
    Declare @Fecha As DateTime = '2020-10-30';
    
    Select
     year(@fecha)*10000+month(@fecha)*100+day(@fecha)

    De manera que tienes un numero int que se parece a una fecha.

    martes, 24 de noviembre de 2020 20:22