UNIX时间戳转换为日期用函数: FROM_UNIXTIME()
select FROM_UNIXTIME(1156219870);
日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()
Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′);
例:mysql查询当天的记录数:
$sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),’%Y-%m-%d’)
= DATE_FORMAT(NOW(),’%Y-%m-%d’) order by id desc”;
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY)
其他相关:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
通过SQL获取时间范围的查询
所以,当我们在给now()+-一个时间的时候,其实应该这样理解的:
+1/+01:加1秒钟
+101/+0101:加1分钟1秒钟
+10101/+010101:加1小时1分钟1秒钟
+1010101/+01010101:加1天1分钟1秒钟
+101010101/+0101010101:加1月1天1分钟1秒钟
+1101010101/+010101010101:加1年1月1天1分钟1秒钟,这里要注意下,年这个部分可以是4位(高位没有的话会补零):00010101010101
(减也是类似的)
所以对于前边的问题:拉去过去三小时内新增的记录, 就可以这样写sql了:
select * from tablename_tbl where addtime >= now() - 30000 and addtime <= now()