mysql建表 时间_mysql建表的时候,时间戳的选用

不常用的date、time、year在此不做阐述

int(10)

int(10)并不是指int的取值范围,而是指定宽度。对大多数应用这是没有意义的:它不会限制值的合法范围,只是规定了mysql的一些交互工具(如mysql命令行客户端)用来显示字符的个数。对于存储和计算而言,int(1)和int(20)是相同的。

datetime

1001年~9999年,精度为秒,格式YYYYMMDDHHMMSS整数,与时区无关。

timestamp

timestamp保存了从1970年1月1日午夜(格林尼治)以来的秒数,最多只能到2038年

如果在多个时区存储或访问数据,timestamp和datetime的行为将很不一样。timestamp提供的值与时区有关系,datetime则保留文本表示的日期和时间。

注:MySQL对于timestamp的行为很复杂,经常在不同版本的mysql中会变动,需要亲自验证行为)

timestamp默认为NOT NULL

我建议用unsigned bigint(10).

因为unsigned int(10)最大值为4294967295.

64位PHP执行echo date('Y-m-d H:i:s', 4294967295);可见:

2106-02-07 14:28:15

这个时间是我们可以预见的.

为什么要用时间戳(整数)呢?因为时间戳方便运算后对比、排序.

比如:以当前时间为基础,查询过去8小时内,1天内,1周内

符合特定条件(比如浏览数/获赞数)的数据.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值