• 四部门调整完善新能源汽车推广应用财政补贴政策 2018-08-15
  • 两男子在吉大美食城“百元找零”诈骗? 2018-08-12
  • 突破!郑鹏创中国队冬残奥会个人项目最好成绩 2018-08-12
  • 今年铜陵市将治理水土流失面积36平方公里 2018-08-11
  • 篮球投注技巧 2018-08-11
  • 威海马上就可以接种四价宫颈癌疫苗 附接种地点 2018-08-10
  • 德赫亚暗示博格巴,像我这样才能在曼联取得成功! 2018-08-10
  • 广州出台“红棉计划”吸引海外人才来穗创新创业 2018-08-10
  • 不敌吉林队 四川男篮赛季排名倒数第二收官 2018-08-10
  • 北京榜样,我为你点一个大大的赞 2018-08-09
  • 石家庄空气质量排名"后十"的乡镇将被约谈 2018-08-08
  • 日本公布秘密文件:美日曾密谋“瓜分”中国(图) 2018-08-08
  • 秦岭户外救援现状调查 志愿者组队救援费用AA制均摊 2018-08-08
  • 皇台酒业为证券虚假陈述案埋单,8名投资者将获赔近62万元 2018-08-08
  • 中科大揭示酵母酶的“钻戒”结构 可优化癌症的个性化治疗 2018-08-08
  • mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法

    栏目: 编程语言 发布于: 2014-05-02 12:32:39

    mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结:

    话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下:

    select * from `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d');

    或者:

    select * from `article` where to_days(date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d')) = to_days(now());

    假设以上表的add_time字段的存储类型是DATETIME类型或者TIMESTAMP类型,则查询语句也可按如下写法:

    查询今天的信息记录:

    select * from `article` where to_days(`add_time`) = to_days(now());

    查询昨天的信息记录:

    select * from `article` where to_days(now()) – to_days(`add_time`) <= 1;

    查询近7天的信息记录:

    select * from `article` where date_sub(curdate(), INTERVAL 7 DAY) <= date(`add_time`);

    查询近30天的信息记录:

    select * from `article` where date_sub(curdate(), INTERVAL 30 DAY) <= date(`add_time`);

    查询本月的信息记录:

    select * from `article` where date_format(`add_time`, ‘%Y%m') = date_format(curdate() , ‘%Y%m');

    查询上一月的信息记录:

    select * from `article` where period_diff(date_format(now() , ‘%Y%m') , date_format(`add_time`, ‘%Y%m')) =1;

    对上面的SQL语句中的几个函数做一下分析:

    (1)to_days

    就像它的名字一样,它是将具体的某一个日期或时间字符串转换到某一天所对应的unix时间戳,如:

    mysql> select  to_days('2010-11-22 14:39:51');       
     +--------------------------------+                                                         
    | to_days('2010-11-22 14:39:51') |
    +--------------------------------+
    |                         734463 |
    +--------------------------------+
    
    mysql> select  to_days('2010-11-23 14:39:51'); 
    +--------------------------------+
    | to_days('2010-11-23 14:39:51') |
    +--------------------------------+
    |                         734464 |
    +--------------------------------+

    可以看出22日与23日的差别就是,转换之后的数增加了1,这个粒度的查询是比较粗糙的,有时可能不能满足我们的查询要求,那么就需要使用细粒度的查询方法str_to_date函数了,下面将分析这个函数的用法。

    提醒:

    (1)to_days() 不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。因此对于1582 年之前的日期(或许在其它地区为下一年 ), 该函数的结果实不可靠的。
     
    (2)MySQL"日期和时间类型"中的规则是将日期中的二位数年份值转化为四位。因此对于'1997-10-07'和'97-10-07'将被视为同样的日期:

    mysql> select to_days('1997-10-07'), to_days('97-10-07');
     
    -> 729669, 729669

    (2)str_to_date

    这个函数可以把字符串时间完全的翻译过来,如:

    mysql> select str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s');
    
    +--------------------------------------------------------+
    | str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s') |
    +--------------------------------------------------------+
    | 2010-11-23 14:39:51                                    |
    +--------------------------------------------------------+

    具体案例操作如下:

    select str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')
    from article
    where str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')>='2012-06-28 08:00:00' and str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')<='2012-06-28 09:59:59';

    您可能感兴趣的文章

    • Mysql查询带单引号字符串及插入带单引号字符串需要注意问题
    • php 输出昨天,今天,明天是星期几的方法
    • mysql如何导出表中的某个字段的数据
    • 总结mysql服务器查询慢原因与解决方法
    • php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
    • php 获取今天明天昨天时间戳的 N 种方法总结
    • 程序员和测试员之间的经典对白。这些是国外程序员总结分享的,称其上全球通用?
    • 大流量网站该如何实现优化服务器、静态化、数据库优化、负载均衡以实现高负载
    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法
    IT技术书籍推荐:
    JavaScript高级程序设计(第3版)
    JavaScript高级程序设计(第3版)
    泽卡斯 (Zakas. Nicholas C.) (作者), 李松峰 (译者), 曹力 (译者)
    《JavaScript高级程序设计(第3版)》是JavaScript超级畅销书的最新版。ECMAScript 5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性?!禞avaScript高级程序设计(第3版)》这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践?!禞avaScript高级程序设计(第3版)》附录展望了未来的API和ECMAScript Harmony规范。