none
Convertir a Cadena una Fecha

    Question

  • Saludos

    Tengo una consulta en lo que concateno informacion de texto y de fechas y me da un error porque no la estoy convirtiendo a cadena

    El caso es que se que tengo que utilizar Cast o Convert pero no se cual de las dos es la que se suele utilizar

    La consulta es esta:

     

    ALTER PROCEDURE [dbo].[PROC_MATRICULAS_CargarCursosNif] 
       @NIF varchar(9)
    AS 
      SELECT (PERSONAS.Nif+' - '+ PERSONAS.Nombre+' '+PERSONAS.Apellidos) AS INFOPERSONA,
    	    PERSONAS.Nif, PERSONAS.Nombre,PERSONAS.Apellidos, 
    	    CURSOS.NOMBRE,CURSOS.FechaInicio,CURSOS.FechaFin,
    		  (CURSOS.CodigoCurso+' - '+CURSOS.NOMBRE+' - '+CURSOS.FechaInicio+' - '+CURSOS.FechaFin) as INFOCURSO
      FROM PERSONAS,MATRICULAS,CURSOS
      WHERE (PERSONAS.NIF=MATRICULAS.NifAlumno)
    	AND	 (MATRICULAS.CodigoCurso=CURSOS.CodigoCurso)
    	AND	 PERSONAS.NIF = @NIF
    	AND PERSONAS.ROL='ALM'

     

     

    Seguro que es facil para vosotros pero tengo la duda

     

    Muchas gracias

     

    Saturday, December 11, 2010 9:41 AM

Answers

  • Hola

    Prueba esto:

    ALTER PROCEDURE [dbo].[PROC_MATRICULAS_CargarCursosNif] 
      @NIF varchar(9)
    AS 
     SELECT (PERSONAS.Nif+' - '+ PERSONAS.Nombre+' '+PERSONAS.Apellidos) AS INFOPERSONA,
    	  PERSONAS.Nif, PERSONAS.Nombre,PERSONAS.Apellidos, 
    	  CURSOS.NOMBRE,CURSOS.FechaInicio,CURSOS.FechaFin,
    		 (CURSOS.CodigoCurso+' - '+CURSOS.NOMBRE+' - '
    +CONVERT(nvarchar,CURSOS.FechaInicio,103)
    +' - '
    +CONVERT(nvarchar,CURSOS.FechaFin,103)
    ) as INFOCURSO
     FROM PERSONAS,MATRICULAS,CURSOS
     WHERE (PERSONAS.NIF=MATRICULAS.NifAlumno)
    	AND	 (MATRICULAS.CodigoCurso=CURSOS.CodigoCurso)
    	AND	 PERSONAS.NIF = @NIF
    	AND PERSONAS.ROL='ALM'
    

    Puedes sustituir el 103 por el formato que más te guste según la tabla que tienes aquí http://msdn.microsoft.com/en-us/library/ms187928.aspx


    Please vote/mark the answer if it was helpful!
    Por favor vota/marca la respuesta si te ha ayudado!
    http://bmegias.wordpress.com
    http://twitter.com/bmegias
    Saturday, December 11, 2010 10:27 AM

All replies

  • Hola

    Prueba esto:

    ALTER PROCEDURE [dbo].[PROC_MATRICULAS_CargarCursosNif] 
      @NIF varchar(9)
    AS 
     SELECT (PERSONAS.Nif+' - '+ PERSONAS.Nombre+' '+PERSONAS.Apellidos) AS INFOPERSONA,
    	  PERSONAS.Nif, PERSONAS.Nombre,PERSONAS.Apellidos, 
    	  CURSOS.NOMBRE,CURSOS.FechaInicio,CURSOS.FechaFin,
    		 (CURSOS.CodigoCurso+' - '+CURSOS.NOMBRE+' - '
    +CONVERT(nvarchar,CURSOS.FechaInicio,103)
    +' - '
    +CONVERT(nvarchar,CURSOS.FechaFin,103)
    ) as INFOCURSO
     FROM PERSONAS,MATRICULAS,CURSOS
     WHERE (PERSONAS.NIF=MATRICULAS.NifAlumno)
    	AND	 (MATRICULAS.CodigoCurso=CURSOS.CodigoCurso)
    	AND	 PERSONAS.NIF = @NIF
    	AND PERSONAS.ROL='ALM'
    

    Puedes sustituir el 103 por el formato que más te guste según la tabla que tienes aquí http://msdn.microsoft.com/en-us/library/ms187928.aspx


    Please vote/mark the answer if it was helpful!
    Por favor vota/marca la respuesta si te ha ayudado!
    http://bmegias.wordpress.com
    http://twitter.com/bmegias
    Saturday, December 11, 2010 10:27 AM
  • Genial, funciona muy bien

    Por lo que me dices es mejor utilizar el Convert que el CAst

     

    Un saludo y muchas gracias

    Saturday, December 11, 2010 10:38 AM