数据库中没有unsigned short int,如何处理

ieee 2012-05-26 10:37:43
1.C++程序中的数据缓存是unsigned short int(0-65535)
2.数据库为节省空间,数据表数据类型选择shortint(-32768~32767)(因为没有unsigned short int),
假如不想改程序的前提下,怎么解决矛盾,数据库中可以定义unsigned short int吗?
...全文
426 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ieee 2012-05-27
  • 打赏
  • 举报
回复
数据库SQL server2000木有short int啊,只有smallint,int,所以我还是决定将程序中的unsigned short改为short类型,这样数据是可以存进去的不会漏,可能会超过32767的就减去一个偏移是数据始终在[-32768~32767],节省空间吧,工作量太大,55555~,谢谢各位
[Quote=引用 5 楼 的回复:]

char存的字符或者字符串,一般都不用来做存数字用。
[/Quote]
zth555888 2012-05-27
  • 打赏
  • 举报
回复
数据库里可以用short int,然后字段属性选择无符号。

即可。
zyq5945 2012-05-27
  • 打赏
  • 举报
回复
char存的字符或者字符串,一般都不用来做存数字用。
ok1234567 2012-05-27
  • 打赏
  • 举报
回复
unsigned short int 与 short int 就是同一个东西,只是解释不一样而已
在数据库那里,解释为有符号,在你那里,解释为无符号
由于解释不同,在排序时会有不同的结果,对于字节中数据本身并无影响

当然,如果不在乎数据库空间,用一个值域更大的整型(如int)表示也许更好
ieee 2012-05-27
  • 打赏
  • 举报
回复
谢谢1/2/3楼的回答,但还是没让我明白,数据库中char(2)的范围是多少?(0-65535还是-32768~32767)
[Quote=引用 3 楼 的回复:]

unsigned short int 与 short int 就是同一个东西,只是解释不一样而已
在数据库那里,解释为有符号,在你那里,解释为无符号
由于解释不同,在排序时会有不同的结果,对于字节中数据本身并无影响

当然,如果不在乎数据库空间,用一个值域更大的整型(如int)表示也许更好
[/Quote]
hdg3707 2012-05-26
  • 打赏
  • 举报
回复
C++有这个unsigned short int类型吗,应该是unsigned short:无符号的16位整数;short:有符号的16位整数;unsigned int:无符号的32位整数;int:有符号的32位整数
zyq5945 2012-05-26
  • 打赏
  • 举报
回复
在数据库中用int字段替换unsigned short int字段就好了。
反正int的值域里包含了unsigned short int。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧