mysql查询在某个时间内的数据sql语句
比如我这边查询jz_user表用户创建时间大于四月一号到四月三十号为例
代码如下 | |
select FROM_UNIXTIME(create_time),user_id from jz_user Where DATE_FORMAT(FROM_UNIXTIME(create_time),'%Y-%m-%d') <= DATE_FORMAT("2013-4-30",'%Y-%m-%d') AND DATE_FORMAT(FROM_UNIXTIME(create_time),'%Y-%m-%d') >= DATE_FORMAT("2013-4-1",'%Y-%m-%d') |
TO_DAYS(date) 函数
给定一个日期date,返回一个天数(从年份0开始的天数)。
比如下面的例子:
代码如下 | |
|
TO_DAYS() 不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。
请记住,MySQL“日期和时间类型”中的规则将日期中的二位数年份值转化为四位。例如,‘2010-08-07′和 ‘10-08-07′ 被视为同样的日期:
代码如下 | |
|
对于1582年之前的日期(或许在其它地区为下一年),该函数的结果实不可靠的。
now() 函数
NOW() 函数返回当前的日期和时间。
代码如下 | |
mysql> select (now()); |
to_days(current_date)也可以实现上面的功能。
代码如下 | |
mysql> select to_days(current_date); |
结果
现在我们可以得出问题的答案了:
代码如下 | |
select * from news where to_days(now())-to_days(newsdate) < 30 order by view desc limit 0, 10 |
可以获得一个月内浏览数最高的十条记录。