none
conversión de fecha? RRS feed

  • Pregunta

  • Tengo una columna de formato varchar,  la cual guarda  los datos como la siguiente :

    16/04/2009
    27/03/2008
    18/12/2008

    pero  cuando lo llamo por un procedimiento almacenado, necesito que todo la columna se convierta en formato datetime .

    CREATE PROCEDURE  USP_LISTAR
    AS 
    SELECT c.IntIdCar  as IdCar,    
    cc.VarMoneda as TipoMoneda,                       
    cc.IntIdClient  as Id ,                    
    cp.VarNumIdent [N de Identidad],                    
    cp.VarNomClient as Cliente,                    
    cast(cc .VarFechaCas as datetime)  as FechaCastigo ,   -- esta fecha guardada como varchar necesito convertirla en datetime              
    cc.VarNomEmp as Empresa,                                              
    ecc.VarNomEstado as Estado,                
    cc.bitAsignado as Asignar              
    from tbl_CarteraCliente              

    pero cuando llamo a este procedimiento me sale el siguiente error:

    Msg 242, Level 16, State 3, Line 1
    The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.


    • Editado dayan3333 miércoles, 18 de abril de 2012 17:31
    miércoles, 18 de abril de 2012 17:07

Respuestas

  • Uf, pues lamento mucho su situación.  Claro que es posible.  Yo usaría las funciones de manipulación de cadenas para extraer el año, mes y día y luego haría un Cast() a datetime o datetime2 (SQL Server 2008+).  No le pongo el código pues es tedioso.  Si le cuento que el formato yyyymmdd se entenderá bien para la conversión.

    http://msdn.microsoft.com/en-us/library/ms181984.aspx


    Jose R. MCP

    • Marcado como respuesta dayan3333 miércoles, 18 de abril de 2012 18:17
    miércoles, 18 de abril de 2012 17:14