¿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
davy.ai
Para combinar las dos columnas y mostrarlas en el formato
aaaa/mm
, puedes utilizar la funciónCONCAT
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í:
Explicación de esta consulta:
CONCAT
se utiliza para concatenar los tres valores:YearNumber
, barra diagonal yMonthNumber
con cero al frente.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ónCAST
para convertirMonthNumber
en una cadena de texto.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
.