none
error de conversion de fechas

    Question

  • hola chicos tengo esta linea de codigo en donde lo que hago es actualizar un registro

    update ripley set fecha_ult_cont=fechaefectividad where fecha_ult_cont='NULL' AND validando = '3' and id_titular=5579

    el tema esta que me sale un error

    Mens. 241, Nivel 16, Estado 1, Línea 1
    Error de conversión al convertir una cadena de caracteres a datetime.

    pero los dos campos que estoy igualando son datetime

    alguna idea de porque me sale este error

    Saturday, April 14, 2012 12:45 AM

Answers

  • Y no seria de esta forma

    update ripley set fecha_ult_cont=@fechaefectividad where fecha_ult_cont='NULL' AND validando = '3' and id_titular=5579

    Puede realizar un cast de la variable, algo como esto

    CREATE PROCEDURE hola 
    @fechaefectividad DATETIME
    
    AS
    BEGIN
    SELECT @fechaefectividad = (N'query que retorne la fecha deseada')
    
    UPDATE ripley SET fecha_ult_cont=CAST(@fechaefectividad AS DATETIME) WHERE fecha_ult_cont='NULL' AND validando = '3' and id_titular=5579 
    END
    GO
    


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    Blog

    Saturday, April 14, 2012 1:11 AM
  • Si quieres filtrar por el valor NULL en el campo "fecha_ult_cont", no debes encerrar ese texto entre comillas. Es decir, que deberías haberlo escrito como

    update ripley set fecha_ult_cont=fechaefectividad where fecha_ult_cont=NULL AND validando = '3' and id_titular=5579

    Si lo encierras entre comillas, SQL Server lo interpretará como el texto "NULL" (que no es lo mismo que valor nulo) y por tanto tratará de convertirlo a fecha, de ahí el mensaje de error que te lanza
    Saturday, April 14, 2012 9:44 AM

All replies

  • Y no seria de esta forma

    update ripley set fecha_ult_cont=@fechaefectividad where fecha_ult_cont='NULL' AND validando = '3' and id_titular=5579

    Puede realizar un cast de la variable, algo como esto

    CREATE PROCEDURE hola 
    @fechaefectividad DATETIME
    
    AS
    BEGIN
    SELECT @fechaefectividad = (N'query que retorne la fecha deseada')
    
    UPDATE ripley SET fecha_ult_cont=CAST(@fechaefectividad AS DATETIME) WHERE fecha_ult_cont='NULL' AND validando = '3' and id_titular=5579 
    END
    GO
    


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    Blog

    Saturday, April 14, 2012 1:11 AM
  • Si quieres filtrar por el valor NULL en el campo "fecha_ult_cont", no debes encerrar ese texto entre comillas. Es decir, que deberías haberlo escrito como

    update ripley set fecha_ult_cont=fechaefectividad where fecha_ult_cont=NULL AND validando = '3' and id_titular=5579

    Si lo encierras entre comillas, SQL Server lo interpretará como el texto "NULL" (que no es lo mismo que valor nulo) y por tanto tratará de convertirlo a fecha, de ahí el mensaje de error que te lanza
    Saturday, April 14, 2012 9:44 AM