这篇文章将为大家详细讲解有关mysql中时间类型有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
时间字段类型可以选用datetime和timestamp,下面用一张表展示下二者的区别:
timestamp翻译为汉语即”时间戳”,它是当前时间到 Unix元年(1970 年 1 月 1 日 0 时 0 分 0 秒)的秒数,占用4个字节,而且是以UTC的格式储存,它会自动检索当前时区并进行转换。datetime以8个字节储存,不会进行时区的检索。也就是说,对于timestamp来说,如果储存时的时区和检索时的时区不一样,那么拿出来的数据也不一样。对于datetime来说,存什么拿到的就是什么。下面给出几个常见案例及选择建议。
根据存储范围来选取,比如生产时间,保质期等时间建议选取datetime,因为datetime能存储的范围更广。
记录本行数据的插入时间和修改时间建议使用timestamp。
和时区相关的时间字段选用timestamp。
如果只是想表示年、日期、时间的还可以使用 year、 date、 time,它们分别占据 1、3、3 字节,而datetime就是它们的集合。
如果timestamp字段经常用于查询,我们还可以使用MySQL内置的函数FROM_UNIXTIME()、UNIX_TIMESTAMP(),将日期和时间戳数字来回转换,转换后可以用 INT UNSIGNED 存储时间,数字是连续的,占用空间更小,并且可以使用索引提升查询性能。下面给出示范建表语句及时间戳相关转换SQL:
FROM_UNIXTIME()
UNIX_TIMESTAMP()
CREATETABLE`tb_time`(`increment_id`intunsignedNOTNULLAUTO_INCREMENTCOMMENT'自增主键',`col1`datetimeNOTNULLDEFAULT'2020-10-0100:00:00'COMMENT'到期时间',`unix_createtime`intunsignedNOTNULLCOMMENT'创建时间戳',`create_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT'创建时间',`update_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPCOMMENT'修改时间',PRIMARYKEY(`increment_id`),KEY`idx_unix_createtime`(`unix_createtime`))ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='time测试表';#插入数据insertintotb_time(unix_createtime,create_time)values(UNIX_TIMESTAMP(now()),now());#时间戳数字与时间相互转换selectUNIX_TIMESTAMP('2020-05-0600:00:00')selectFROM_UNIXTIME(1588694400)
关于“mysql中时间类型有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
navicat(for mysql 过期如何解决 Navicat for MySQL如何使用)
NavicatforMySQL如何使用?1.下载NavicatforMySQL软件后。2.在文件里找到navicat.Na...
pycharm(mysql 安装教程 学python这条路怎么走)
学python这条路怎么走?如何学习Python?这是很多新手都会问的问题。这时候问问自己,学Python到底想干什么?为了兴趣?...
MySQL索引怎么创建和删除
MySQL索引怎么创建和删除这篇文章主要介绍了MySQL索引怎么创...
MySQL查看锁的代码怎么写
MySQL查看锁的代码怎么写本文小编为大家详细介绍“MySQL查看...
在 PHP 7 中不要做的 10 件事
1.不要使用MySQL_函数这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP7已经把它们从核心...
MySQL体系架构,超详细
利用PHP访问MySql数据库以及增删改查实例操作
关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作PHP访问MySql数据库˂?php//造连...
密码攻防系列文章6:服务器MySQL账号扫描及攻击
计算机毕业设计php创建mysql数据库
PHP动态网站设计试题
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议