用于存储手机号码的数据类型

sql*_*ild 11 sql-server-2005 sql-server-express sql-server-2008 sqldatatypes

我将使用哪种数据类型来存储10位数的移动号码(例如:9932234242).我要去varchar(10)还是大的 - "bigint".

如果数字是'0021-23141231',那么使用哪种数据类型?

gbn*_*gbn 12

  • varchar/char足够长,适用于所有预期的(例如,英国的数字是11长)
  • 检查约束以仅允许数字(表达式= NOT LIKE '%[^0-9]%')
  • 每个区域设置的客户端格式(英国= 07123 456 789,瑞士= 071 234 56 78)


Dam*_*ver 9

正如其他人已经回答的那样,将varchar用于恰好由数字组成的数据,但数学运算对此毫无意义.

另外,在您的示例编号中,您是否考虑过存储002123141231bigint列中会发生什么?在检索时,它将是2123141231,即数字列无法存储前导0数字......