php - mysq日期用datetime好还是用int10好

查看:82
本文介绍了php - mysq日期用datetime好还是用int10好的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

那种比较好

解决方案

在《高性能MYSQL》中,对于日期和时间类型是这样推荐的:

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

除了特殊行为,通常建议使用timestamp,他比datetime空间效率更高

用int存储timestamp

不推荐在int中存储timestamp,不方便处理

大部分时间类型都没有替代品,因此没有什么是最佳选择的问题。唯一的问题是保存日期和时间的时候需要做什么。

这篇关于php - mysq日期用datetime好还是用int10好的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆