Sé que es poco ortodoxo y potencialmente peligroso querer convertir algo de un tipo de datos de mayor a menor tamaño. Sin embargo, en este caso, es muy poco probable que el valor de la columna BIGINT UNSIGNED
sea siempre mayor que el tamaño máximo de una columna INT
.Convertir BIGINT SIN FIRMAR en INT
Entonces, usando MySQL, estoy leyendo la estructura de la tabla. Mientras leía la columna information_schema.columns.ordinal_position
, me di cuenta de que es del tipo BIGINT UNSIGNED
. Ahora, quiero esto como un INT
en lugar de mis fines de procesamiento. Quiero convertir/convertir el tipo en SQL.
CAST
y CONVERT
solo me permiten cambiar el signo del tipo de datos, aparentemente.
SELECT CAST(ordinal_position AS SIGNED)
FROM information_schema.columns
Quiero la columna volvió específicamente como una INT
. P.ej. cortar la columna en el valor máximo de INT
y devolver ese valor.
Por ahora solo voy a cambiar el tipo de datos después de que retire el valor. Pero me gustaría saber cómo hacerlo en SQL.
¿Cuál es la forma alternativa de hacerlo sin crear una función? Tener que recordar desmontar la función después de su uso es una molestia. – Pacerier