zoukankan      html  css  js  c++  java
  • 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周内
    符合特定条件(比如浏览数/获赞数)的数据.

  • 相关阅读:
    ajax()方法与后台交互
    实现CSS中的垂直水平居中(附带Flex布局,CSS3+SASS完美版)
    yield语句
    匿名方法和Lambda表达式
    委托、Lambda表达式和事件
    分治法
    分治法求一个N个元素数组的逆序数
    快速找出故障机器
    C++关联容器综合应用:TextQuery小程序
    转:做一个有趣的有意思的人
  • 原文地址:https://www.cnblogs.com/aifengguo/p/11201394.html
Copyright © 2011-2022 走看看