mariadb 7位长的SQL存储位

nfzehxib  于 2023-01-26  发布在  其他
关注(0)|答案(1)|浏览(107)

我在我的电脑上使用MariaDB。我是一个学生,所以我不是100%熟悉的术语,但我被告知,我们正在使用SQL Server,我相信。我正在使用MariaDB 10.10,我已经安装在我的笔记本电脑上。
我的目标是创建一个航空公司航班表,显示航班在哪些天运行。(7)键入并存储0和1以表示航班将在一周中的几天运行。给出的例子是"1010111"。这将意味着航班在星期一、星期三、星期五、星期六和星期日运行。然而,我不需要转换0或1来表示星期几,它可以简单地显示为1010111。
我无法使字段显示7位。以下是我的结果:

create table FlightConcession (
    FlightNo VARCHAR(7) not null primary key unique, 
    Origin TEXT not null, 
    Destination TEXT not null, 
    DayOfTheWeek BIT(7) not null, 
    TimeOfDay TIME not null
);

INSERT INTO FlightConcession VALUES('AA3254', 'Abilene', 'Dallas', B'1010111', '060000');

我从这里得到的输出是:
| 航班号|起源|目的地|星期几|时间|
| - ------|- ------|- ------|- ------|- ------|
| AA3254|阿比林|达拉斯|W型|上午6时00分|
我不知道为什么它输出"W"而不是"1111100"。我们在课堂上收到的指令很少,我没有从同学或教师的帮助中得到任何牵引力。有人能解释一下我如何才能让DayOfTheWeek显示"1111100"而不是使用BIT(7)类型的单个字符吗?提前谢谢你。

xtfmy6hx

xtfmy6hx1#

您插入的数据和结果有问题。
如果输出为W,则二进制表示应为1010111,而不是1111100。后者的值为124,应显示为竖条|
要获取位字段的字符串表示形式,请使用BIN函数:

SELECT  FlightNo, Origin, Destination, bin(DayOfTheWeek) as DayOfTheWeek, TimeOfDay from FlightConcession

相关问题