mysql里怎么获取一个时间段mysql 每一天天的数据

TO_DAYS(date)函数与now()函数
服务器君一共花费了34.715 ms进行了2次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议
有这样一个需求,我们需要获得某个时间段内所有数据记录,比如最近一个月内的新闻,然后再在这个数据集合中进行排序,看哪个新闻的点击率最高。现在问题是,如何获得那个时间段。MySQL已经有些函数可以帮助我们,先看看这些函数吧。
TO_DAYS(date) 函数
给定一个日期date,返回一个天数(从年份0开始的天数)。
比如下面的例子:
mysql> SELECT TO_DAYS('');
+-----------------------+
| TO_DAYS('') |
+-----------------------+
+-----------------------+
1 row in set
TO_DAYS() 不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。
请记住,MySQL“日期和时间类型”中的规则将日期中的二位数年份值转化为四位。例如,‘′和 ‘10-08-07′ 被视为同样的日期:
mysql> SELECT TO_DAYS(''),TO_DAYS('09-08-07');
+-----------------------+---------------------+
| TO_DAYS('') | TO_DAYS('09-08-07') |
+-----------------------+---------------------+
+-----------------------+---------------------+
1 row in set
对于1582年之前的日期(或许在其它地区为下一年),该函数的结果实不可靠的。
now() 函数
NOW() 函数返回当前的日期和时间。
mysql> select (now());
+---------------------+
+---------------------+
21:18:44 |
+---------------------+
1 row in set
to_days(current_date)也可以实现上面的功能。
mysql> select to_days(current_date);
+-----------------------+
| to_days(current_date) |
+-----------------------+
+-----------------------+
1 row in set
现在我们可以得出问题的答案了:
select * from news where to_days(now())-to_days(newsdate) < 30 order by view desc limit 0, 10
可以获得一个月内浏览数最高的十条记录。
本文地址:,欢迎访问原出处。
不打个分吗?
转载随意,但请带上本文地址:
如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 。
大家都在看
阅读一百本计算机著作吧,少年
程杰 (作者)
《大话设计模式》通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GoF(设计模式的经典名著——Design Patterns: Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及JohnVlissides,这四人常被称为GangofFour,即四人组,简称GoF)总结的23个设计模式。本书共分为29章。其中,第1、3、4、5章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第2章,以及第6到第28章详细讲解了23个设计模式;第29章是对设计模式的全面总结。
扫一扫,在手机上阅读
栏目最新博文
22,505 views
18,521 views
23,674 views
152,396 views
20,454 views
21,288 views
14,480 views
18,547 views
21,006 views
15,034 views
栏目博文推荐
18,547 views
10,836 views
12,903 views
3,918 views
18,521 views
15,034 views
8,503 views
4,167 views
4,901 views
22,505 views
再长的路,一步步也能走完;再短的路,不迈开双脚也无法到达。
1,181 views
关于网站与作者
互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼(愿景)。
“Veda”的本义是知识、启示,希望这里能为开发者提供充足的技术资料。
我的电子邮件gonnsai(,腾讯微博:,欢迎与我联系。博客访问: 469442
博文数量: 252
博客积分: 6552
博客等级: 准将
技术积分: 2783
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
一、年度查询
查询 本年度的数据
FROM blog_article
WHERE year( FROM_UNIXTIME( BlogCreateTime ) ) = year( curdate( ))
二、查询季度数据
查询数据附带季度数
SELECT ArticleId, quarter( FROM_UNIXTIME( `BlogCreateTime` ) )
FROM `blog_article`
其他的同前面部分:查询 本季度的数据
FROM blog_article
WHERE quarter( FROM_UNIXTIME( BlogCreateTime ) ) = quarter( curdate( ))
三、查询月度数据
本月统计(MySQL)
select * from booking where month(booking_time) =
month(curdate()) and year(booking_time) = year(curdate())
本周统计(MySQL)
select * from spf_booking where month(booking_time) =
month(curdate()) and week(booking_time) = week(curdate())
四、时间段
WHERE&TO_DAYS(NOW())&-&TO_DAYS(时间字段)&<=&N
当天的记录
where&date(时间字段)=date(now())
where&to_days(时间字段)&=&to_days(now());
查询一周:
select&*&from&table&&&where&DATE_SUB(CURDATE(),&INTERVAL&7&DAY)&<=&date(column_time);
查询一个月:
select&*&from&table&where&DATE_SUB(CURDATE(),&INTERVAL&INTERVAL&1&MONTH)&<=&date(column_time);
查询'06-03'到'07-08'这个时间段内所有过生日的会员:
&& Select * From user Where
DATE_FORMAT(birthday,'%m-%d') >= '06-03' and DATE_FORMAT(birthday,'%m-%d')
<= '07-08';
统计一季度数据,表时间字段为:savetime
group by concat(date_format(savetime, '%Y '),FLOOR((date_format(savetime, '%m ')+2)/3))
select YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1,count(*)
from yourTable
group by YEAR(savetime)*10+((MONTH(savetime)-1) DIV 3) +1;
五、分组查询
&& 1、年度分组
&& 2、月度分组
&& 3、先按年度分组,再按月度分组
&& 4、按年月分组
&& SELECT count(ArticleId), date_format(FROM_UNIXTIME( `BlogCreateTime`),'%y%m') sdate& FROM `blog_article` group by sdate
&&& count( ArticleId ) &&& sdate
17 &&& 0901
11 &&& 0902
5 &&& 0903
6 &&& 0904
2 &&& 0905
1 &&& 0907
12 &&& 0908
6 &&& 0909
11 &&& 0910
3 &&& 0911
其他方法参考:
我想做一个统计,数据库是mysql,统计出每天,每周,每月的记录数
建表的时候加个字段表示日期,然后查sql手册...select count(*) from `table` where `date`='{某天}'select count(*) from `table` where date_format(`date`,'%V')='{某周}'select count(*) from `table` where date_format(`date`,'%c')='{某月}'
另一种方法:select count( * ) from projects where editdate >= ' 00:00:00' and editdate <=
' 24:00:00';
第三种方法:每周的SQL codeselect count(*) as cnt,week(editdate) as weekflg from projects where year(editdate)
=2007 group by weekflg
每月SQL codeselect count(*) as cnt,month(editdate) as monthflg from projects where year
(editdate)=2007 group by monthflg
每天SQL codeselect count(*) as cnt from projects group by date(editdate)
mysql中DATE_FORMAT(date, format)函数可根据format字符串格式化日期或日期和时间值date,返回结果
串。 也可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式
化date值: 下面是函数的参数说明: %S, %s 两位数字形式的秒( 00,01, . . ., 59) %i 两位数字形式的分( 00,01, . . ., 59) %H 两位数字形式的小时,24 小时(00,01, . . ., 23) %h, %I 两位数字形式的小时,12 小时(01,02, . . ., 12) %k 数字形式的小时,24 小时(0,1, . . ., 23) %l 数字形式的小时,12 小时(1, 2, . . ., 12) %T 24 小时的时间形式(hh : mm : s s) %r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM) %p AM 或P M %W 一周中每一天的名称( Sunday, Monday, . . ., Saturday) %a 一周中每一天名称的缩写( Sun, Mon, . . ., Sat) %d 两位数字表示月中的天数( 00, 01, . . ., 31) %e 数字形式表示月中的天数( 1, 2, . . ., 31) %D 英文后缀表示月中的天数( 1st, 2nd, 3rd, . . .) %w 以数字形式表示周中的天数( 0 = Sunday, 1=Monday, . . ., 6=Saturday) %j 以三位数字表示年中的天数( 001, 002, . . ., 366) % U 周(0, 1, 52),其中Sunday 为周中的第一天 %u 周(0, 1, 52),其中Monday 为周中的第一天 %M 月名(January, February, . . ., December) %b 缩写的月名( January, February, . . ., December) %m 两位数字表示的月份( 01, 02, . . ., 12) %c 数字表示的月份( 1, 2, . . ., 12) %Y 四位数字表示的年份 %y 两位数字表示的年份 %% 直接值“%”
阅读(15559) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。mysql中统计一段时间内每天的数据量按日期分组_sql吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:28,494贴子:
mysql中统计一段时间内每天的数据量按日期分组收藏
统计一段时间内每天的数据量按日期分组,group by 怎么把某天数据量为0的也显示出来?举个例子:表结构: id--------------name--------------addtime1
12:30:19想要达到查询结果:addtime---------------count
3请教各位大神这个SQL要怎么写?
阿里云数据库完全兼容MySQL,SQL Server协议.用户按需在线扩容,轻松应对百万用户访问具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份,恢复及优化方案
解决了吗?我现在也有这个问题,就是数据库中不存在的日期怎么显示?
你还在用老办法创建网站制作有戏吗?掌握新web时代最前沿的技术,才能快人一步!立即搜 思必达学院
对于 没有的时间显示为0,只能同后期处理吧,生成新表,然后插入新的值
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 mysql 每一天 的文章

 

随机推荐