zoukankan      html  css  js  c++  java
  • 时间字段类型之timestamp、int(10)和datetime如何选择?

      最近我在设计数据表时需要一个存放时间的字段,在timestamp、int(10)和datetime几种类型中犹豫不决,它们都能满足我的业务需求,因此我不知道它们几个哪个更好。下面我就我整理出来的资料记录一下笔记。

    • timestamp

      timestamp类型的取值范围为“1970-01-01 00:00:00” 至 “2038-01-19 03:14:07”,其数据精确到秒,4个字节,其时间值带时区,可精确到微秒级别,timestamp(N)的取值范围为0-6,精确到毫秒则设置为timestamp(3),精确到微秒则设置为timestamp(6)。

    • int(10)

      就是一个时间戳,4个字节,精确到秒。

    • datetime

      datetime类型的取值范围为1000-01-01 00:00:00~9999-12-31 23:59:59,存储需要8个字节,与时区无关,精确度为百分之三秒。

      我自己总结一下这几个类型的优缺点:
      ①timestamp存储空间小、精确度高、适用数据库相关的时间函数、数据表可视化,但是时间范围快到期了,且由于自带时区转义,如果是跨多个时区的业务需要检查好自身的时间时区转换。

      ②int(10)存储空间小、运算及查询效率高、不受时区影响,但是可视化不友好,需要转义才能看时间,且精确度不高,只能到秒级别。

      ③datetime,时间范围大、对程序员友好,可视化友好,可适用数据库相关的时间函数。但存储空间大。

      以上就是我的总结。

    参考 https://blog.csdn.net/xumingjie1658/article/details/7426301、https://www.cnblogs.com/deityjian/p/11452295.html、https://blog.csdn.net/fsp88927/article/details/80662369 

  • 相关阅读:
    elasticsearch 5.x 系列之七 基于索引别名的零停机升级服务
    Linux 查看系统硬件信息(实例详解)
    linux grep命令详解
    Boot loader: Grub进阶(转)
    Boot loader: Grub入门(转)
    内核模块管理(转)
    Centos启动流程(转)
    Linux 内核启动流程(转)
    程序的运行顺序(转)
    查询进程打开的文件(转)
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14401247.html
Copyright © 2011-2022 走看看