es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtengo el formato yyyy-mm a partir de 2 columnas diferentes en SQL?

Tengo una columna que muestra el número del año en el formato 1999 y tengo otra columna que muestra el número del mes como 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.

¿Cómo puedo hacer que los meses individuales se muestren con un 0 al frente? Necesito combinar estas 2 columnas para mostrarlas en el formato yyyy/mm, por lo que sería 1999/01 para enero de 1999.

Intenté:

SELECT
YearNumber + ‘/’ + FORMAT(MonthNumber, ‘mm’) AS PaymentMonth

Pero obtengo este error:

Error de conversión al convertir el valor varchar ‘/’ al tipo de datos smallint

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para combinar las dos columnas y mostrarlas en el formato aaaa/mm, puedes utilizar la función CONCAT para concatenar el número de año, una barra diagonal y un cero al frente para el número de mes.

    La consulta se vería así:

    SELECT 
        CONCAT(YearNumber, '/', 
               RIGHT('00' + CAST(MonthNumber AS varchar(2)), 2)) AS PaymentMonth
    

    Explicación de esta consulta:

    • La función CONCAT se utiliza para concatenar los tres valores: YearNumber, barra diagonal y MonthNumber con cero al frente.
    • La función RIGHT se utiliza para añadir un cero al frente al número de mes. El cero al frente se añade solamente si el número de mes tiene un solo dígito, utilizando la función CAST para convertir MonthNumber en una cadena de texto.
    • El segundo argumento de la función RIGHT especifica la longitud de la cadena resultante, en este caso, dos.

    Esta consulta producirá el resultado deseado de combinar las dos columnas en formato aaaa/mm.

Comments are closed.