我确实认识到如果一个列必须对其进行数学计算,那么它更适合作为整数。
我可能不得不在"年"进行数学计算。列,但最低限度。那么将它存储为String或Integer会更好吗?
感谢。
答案 0 :(得分:4)
将其保存为整数。
虽然可能有一些应用程序,您正在经常阅读和提供此数据,因此int->字符串转换是一个问题...这将是一个边缘情况。
另一方面
答案 1 :(得分:3)
如果您不希望您的YEAR
变量包含非数字值,那么您应该将其存储为数字。
我不会将其存储为INT
,因为我怀疑年份会达到INT
所提供的限制。我会将其保存为SMALLINT
甚至TINYINT
,或者unsigned
。
SMALLINT UNSIGNED
为您提供65535
的最大值,除非您存储超过年份65535
的年份,这应该足够了。
答案 2 :(得分:0)
你可能会发疯并将其保存为YEAR
!
这限制你到1901-2155。
如果限制性太强,我更喜欢CHAR(4)
到INT
; MySQL DATETIME
比较以类似字符串的方式完成..
您可以执行
之类的操作WHERE year < CURDATE()
无需担心。