数据库用int存储时间戳问题

数据库 int 存储 符号 编程进阶笔记
发布日期 2022-12-22 更新日期 2023-01-15 阅读次数 78 文章字数 764

超过int范围就不行了。

最大范围是 2038 年,太小的也不行,所以不太合理。

只能说一定情况下可用 int ,直接用 bigint 会更好。

字段类型int,长度11,带符号型。我们平时知道int的长度与存放的数值型的数的大小无关 ,也就是int(1)与int(11)存储的数值大小是一样的,所以关键要去查询int数值最大是多少。

   以下是每个整数类型的存储和范围(来自mysql手册)

类型

字节

最小值

最大值

 

 

(带符号的/无符号的)

(带符号的/无符号的)

TINYINT

1

-128

127

 

 

0

255

SMALLINT

2

-32768

32767

 

 

0

65535

MEDIUMINT

3

-8388608

8388607

 

 

0

16777215

INT

4

-2147483648

2147483647

 

 

0

4294967295

BIGINT

8

-9223372036854775808

9223372036854775807

 

 

0

18446744073709551615

 

        有符号的int类型最大值2147483647,转成日期为2038-01-19 11:14:07,如果想存储2038-01-19 11:14:07往后的日期可以将字段改成unsigned,unsigned 是表示无符号数据类型,也就是非负数,因此对整数的表示范围扩大了1倍,无符号的int最大值为 4294967295 (转换时间为2106-02-07 14:28:15)目前可以满足需要。

至于为什么用int作为日期时间的存储类型而不用datetime呢,int做时间戳有什么优缺点呢?

优点:

        1、int存储空间小,排序查询效率比datetime高。
        2、方便时间计算很好规避了时区问题。
        3、格式化在php,方便日期格式转换。
缺点:
        1,int日期范围有限制(0的时间戳转换为1970-01-01 08:00:00),可用bigint代替,而datetime支持的范围为"1000-01-01 00:00:00"到"9999-12-31 23:59:59"。
        2,可读性极差,无法直观的看到数据。


文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-287.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

数据库 int 存储 符号

发表评论

相关推荐
朱丰华   |   1年前   |   php

php正则表达式定界符:异常Delimiter must not be alphanumeric or backslash

190    评论    点赞
朱丰华   |   1年前   |   sql · mysql

mysql Timestamp或dateTime格式筛选

126    评论    点赞
朱丰华   |   1年前   |   正则 · 表达

正则表达式,实现if...then...else

113    评论    点赞
朱丰华   |   1年前   |   变量 · mysql · sql · 用户

MySQL用户自定义变量

95    评论    点赞
朱丰华   |   1年前   |   linux · 文件

linux递归统计文件夹大小、du命令_Linux du命令:查看文件夹和文件的磁盘占用情况

193    评论    点赞
朱丰华   |   1年前   |   js · php · 字符 · 字符串

php json_encode对字符串转义用法

135    评论    点赞
朱丰华   |   1年前   |   zend · php · 类型 · zval

php内核zval类型,与基本类型的转换

116    评论    点赞
朱丰华   |   1年前   |   指针 · 地址 · c语言

C语言的&取地址符,指针

126    评论    点赞
朱丰华   |   1年前   |   php · zend · 调用 · 文件

php扩展开发,调用php函数

99    评论    点赞
朱丰华   |   1年前   |   zend · 常量 · php

php zend操作常量,定义常量,判断常量是否存在,取常量的值

97    评论    点赞
朱丰华   |   1年前   |   php · api · 扩展 · 执行

php sapi生命周期

86    评论    点赞
朱丰华   |   1年前   |   php · _server · 域名

php内核,取超全局变量$_SERVER,取域名例子

82    评论    点赞
朱丰华   |   1年前   |   php · 全局 · 变量

php内核HashTable全局变量数据宏定义,EG,CG,PG,FG

91    评论    点赞
朱丰华   |   1年前   |   php

php扩展返回数字、布尔值的几种写法

72    评论    点赞
朱丰华   |   1年前   |   php · 常量 · 扩展

php扩展中,取字符串常量的值

148    评论    点赞
朱丰华   |   1年前   |   php

php执行字符串代码

237    评论    点赞
朱丰华   |   1年前   |   php · 字符串 · 字节

php高可用字节显示,字节大小转数值和字符串大小字符串转换

139    评论    点赞
朱丰华   |   1年前   |   mysql · 转换 · 数字

MySQL字符串转数字,比较数字大小

112    评论    点赞
朱丰华   |   1年前   |   分库 · 分表 · 数据库

数据库,分库和分表的目的有什么不同?

128    评论    点赞
朱丰华   |   1年前   |   Javascript

Javascript中char和int的互相转换的代码

75    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞