mysql int和datetime存放时间戳和时间日期对比

使用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时间戳

使用phpdate('Y-m-d H:i:s', xx转换1000条数据花不了1微妙们可以忽略本地转换时间,以下是测试代码

	$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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值