Bạn không thể!
CAST và CONVERT chỉ hoạt động với:
- BINARY [(N)]
- CHAR [(N)]
- DATE
- DATETIME
- DECIMAL [(M [, D])]
- ĐÃ ĐĂNG KÝ [INTEGER]
- THỜI GIAN
- CHƯA ĐĂNG KÝ [INTEGER]
Không có chỗ cho:BIT, BITINT, TINYINT, MEDIUMINT, BIGINT, SMALLINT, ...
Tuy nhiên, bạn có thể tạo hàm cast_to_bit (n) của riêng mình:
DELIMITER $$
CREATE FUNCTION cast_to_bit (N INT) RETURNS bit(1)
BEGIN
RETURN N;
END
Để tự mình thử, bạn có thể tạo chế độ xem với một số chuyển đổi như:
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)
... và sau đó mô tả nó!
DESCRIBE view_bit;
Ta-dah !! Mọi người đều là bit (1) bây giờ !!!