mysql int和datetime存放时间戳和时间日期对比
2017-05-15 11:03
302 查看
使用int和datetime存放时间的情况下 (使用语言: PHP)
相同点
1.int和date可以使用<>=这些符号进行比较.
int
区别:
1.无数据自带校验,使用php自带函数(strtotime)转换成时间日期格式,
2.可读性较差,每次阅读都必须使用date函数进行转换
3.计算日期方便, 增减天数+-24*60*60
4.使用<>=比较的时候做的是整数比较
datetime
区别:
1.自带数据校验,如果插入数据为(2014-15-41 00:00:00)这类错误的数据,这会存放为伪日期(00-00-00 00:00:00){"在非严格模式下"};
2.可读性很好,直接识别日期
3.计算日期就需要用到相关的date函数
1.增加为date_add(起始日期, 增加的时间); 第二个参数必须是(string类型)
2.减天数date_sub(起始日期, 减少的时间);
第二个参数必须是(string类型)
3.返回两个日期之间的天数 DATEDIFF(起始日期,结束日期) {SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');}
4.使用<>=比较的时候做的是字符串比较
效率比较:
MySQL 版本是5.6
表
CREATE TABLE test (time int, dtime datetime)
插入700W条数据后
使用select 查询dateime类型
使用select 查询int时间戳
使用php做date('Y-m-d H:i:s', xx转换1000条数据花不了1微妙们可以忽略本地转换时间,以下是测试代码
[php] view plain copy
$date_array = explode(" ", microtime());
$date = $date_array[1];
for ($i = $date; $i < $date + 10000; $i++){
date('Y-m-d H:i:s', $i);
}
$date_array = explode(" ", microtime() );
echo $date_array[1] - $date;
exit;
总结下:
使用int存放时间戳是比datetime快的,而是在编程的时候,int也更方便使用吧,不需要去记忆额外的sql函数
而使用datetime做为数据库类型存放日期,对数据的可读性很有帮助.而对代码的可读性也是很有帮助的,毕竟使用ADDDATE这样的sql函数之后: 特定的日期要加1天就是需要ADDDATE('2014-12-29', 1)这样子,不需要去做额外的转换
相同点
1.int和date可以使用<>=这些符号进行比较.
int
区别:
1.无数据自带校验,使用php自带函数(strtotime)转换成时间日期格式,
2.可读性较差,每次阅读都必须使用date函数进行转换
3.计算日期方便, 增减天数+-24*60*60
4.使用<>=比较的时候做的是整数比较
datetime
区别:
1.自带数据校验,如果插入数据为(2014-15-41 00:00:00)这类错误的数据,这会存放为伪日期(00-00-00 00:00:00){"在非严格模式下"};
2.可读性很好,直接识别日期
3.计算日期就需要用到相关的date函数
1.增加为date_add(起始日期, 增加的时间); 第二个参数必须是(string类型)
2.减天数date_sub(起始日期, 减少的时间);
第二个参数必须是(string类型)
3.返回两个日期之间的天数 DATEDIFF(起始日期,结束日期) {SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');}
4.使用<>=比较的时候做的是字符串比较
效率比较:
MySQL 版本是5.6
表
CREATE TABLE test (time int, dtime datetime)
插入700W条数据后
使用select 查询dateime类型
使用select 查询int时间戳
使用php做date('Y-m-d H:i:s', xx转换1000条数据花不了1微妙们可以忽略本地转换时间,以下是测试代码
[php] view plain copy
$date_array = explode(" ", microtime());
$date = $date_array[1];
for ($i = $date; $i < $date + 10000; $i++){
date('Y-m-d H:i:s', $i);
}
$date_array = explode(" ", microtime() );
echo $date_array[1] - $date;
exit;
总结下:
使用int存放时间戳是比datetime快的,而是在编程的时候,int也更方便使用吧,不需要去记忆额外的sql函数
而使用datetime做为数据库类型存放日期,对数据的可读性很有帮助.而对代码的可读性也是很有帮助的,毕竟使用ADDDATE这样的sql函数之后: 特定的日期要加1天就是需要ADDDATE('2014-12-29', 1)这样子,不需要去做额外的转换
相关文章推荐
- mysql int和datetime存放时间戳和时间日期对比
- mysql int,datetime,timestamp时间戳、时间日期相关总结分析
- mysql 时间格式与日期格式转换,去除datetime中的具体时间
- Mysql时间存储类型优缺点?DATETIME?TIMESTAMP?INT?
- Mysql中的date与datetime,以及如何向Mysql中插入“日期+时间”数据
- mysql中的datetime时间对比
- Mysql日期时间类型(DATE,DATETIME,TIMESTAMP)和函数及与linux系统时间之间的转换(UNIX_TIMESTAMP、FROM_UNIXTIME)
- mysql所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。
- MySql存储日期类型用int、datetime还是varchar?
- MySQL时间字段究竟使用INT还是DateTime的说明
- MySQL时间类型数据存储datetime、timestamp、int
- MySQL时间字段究竟使用INT还是DateTime
- mysql 时间格式与日期格式转换,去除datetime中的具体时间
- 日志系统:字段类型的思考——String(字符串)、datetime(日期时间)、ip、int(整数)、float(小数)
- MySQL 与 PHP 日期时间格式对比 UNIX_TIMESTAMP() / time() / strtotime()
- MySQL时间字段究竟使用INT还是DateTime
- mysql 查询 int类型日期转换成datetime类型
- 细节决定成败-mysql中的时间存储(datetime,timestamp,int)
- mysql 中时间日期格式datetime和timestamp比较 以及date_format函数
- mysql 查询 int类型日期转换成datetime类型