Non puoi!
CAST e CONVERT funzionano solo su:
- BINARIO[(N)]
- CHAR[(N)]
- DATA
- DATA ORA
- DECIMAL[(M[,D])]
- FIRMATO [INTERO]
- TEMPO
- UNSIGNED [INTERO]
Nessuno spazio per:BIT, BITINT, TINYINT, MEDIUMINT, BIGINT, SMALLINT, ...
Tuttavia, puoi creare la tua funzione cast_to_bit(n):
DELIMITER $$
CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1)
BEGIN
RETURN N;
END
Per provarlo tu stesso, puoi creare una vista con diverse conversioni come:
CREATE VIEW view_bit AS
SELECT
cast_to_bit(0),
cast_to_bit(1),
cast_to_bit(FALSE),
cast_to_bit(TRUE),
cast_to_bit(b'0'),
cast_to_bit(b'1'),
cast_to_bit(2=3),
cast_to_bit(2=2)
... e poi descrivilo!
DESCRIBE view_bit;
Ta-dah!! Tutti sono bit(1) ora!!!