关于夏令时,UTC,GMT这几个概念建议先简单了解下,下面不做解释
先丢结论以表诚意:
如果程序不需要考虑时区,夏令时或者将来数据库的机子迁移到别的地方时区变化,用datetime类型比较方便;
用timestamp可以避免上述的问题(mysql官方文档的简单解释是数据存入timestamp时会根据时区转换为UTC时间,取出的时候做个反转换),但众所周知timestamp的存储位数只有4个字节,只能用到2037年;
如果程序要避免第一个问题,同时要跑到2037之后,可以用int或bigint存储。此时需要一些mysql的转换函数处理展示问题。
先丢结论以表诚意:
如果程序不需要考虑时区,夏令时或者将来数据库的机子迁移到别的地方时区变化,用datetime类型比较方便;
用timestamp可以避免上述的问题(mysql官方文档的简单解释是数据存入timestamp时会根据时区转换为UTC时间,取出的时候做个反转换),但众所周知timestamp的存储位数只有4个字节,只能用到2037年;
如果程序要避免第一个问题,同时要跑到2037之后,可以用int或bigint存储。此时需要一些mysql的转换函数处理展示问题。
自己另外测试了下用datetime和int存储时间在查询方面的效率是不是有差别
mysql官方的reference里说datetime本质上存的也是int,所以我的理解应该差别不大
CREATE TABLE `tablec` (
`id` INT(11)