Jas*_*vis 10 mysql integer biginteger
我应该在MySQL中使用大整数还是常规整数来存储timerstamp?我计划将它存储在INT而不是内置的时间戳或日期时间中,以便我应该使用哪种INT类型?
pax*_*blo 14
您应该将其存储在时间戳中,因为这很可能是DBMS将针对时间戳数据进行优化的内容.
我很好奇为什么你会牺牲MySQL开发人员为使时间戳按照他们应该的方式工作而付出的所有努力,并用几乎肯定不会起作用的东西取而代之.
既然你没有说明为什么要使用整数,我只是假设它是暂时的精神错乱,你很快就会恢复:-)
zmb*_*ush 13
Int将在2038年转为负数(如果您使用的是UNIX时间戳):http://en.wikipedia.org/wiki/2038_problem.
所以BIGINT可能是最安全的选择
我认为这完全取决于你想做什么.时间/日期类型有一些合适的类型(参见:http://dev.mysql.com/doc/refman/5.0/en/date-and-time-type-overview.html)
DATE
- 通常为3个字节,范围:1000-01-01
to 9999-12-31
.DATETIME
- 8个字节,范围1000-01-01 00:00:00
到9999-12-31 23:59:59
TIMESTAMP
- 4个字节范围1970-01-01 00:00:01
UTC到2038-01-19 03:14:07
UTC.然后,有一些语义问题需要注意:(int是4个字节,如TIMESTAMP,bigint是8个字节,如DATETIME)