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 查询今天_mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句相关推荐

  1. mysql查询今天,昨天,近7天,近30天,本月,上一月数据

    近期项目中用到了查询当月数据记录的功能,最初的想法是在逻辑业务里构造好时间段进行查询,当写sql语句时感觉挺麻烦.所以就到网上搜索了一下,看看是不是能有简单的方法.果然.网络资源非常强大.以下结合我的 ...

  2. 黄聪mysql_黄聪:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法

    mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添 ...

  3. mysql 30天销量_mysql查询今天,昨天,近7天,近30天,本月,上一月数据方法

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为in ...

  4. mysql 查询小数点_MySQL查询小数点位数

    怎么查询某个字段中小数有几位? MySQL数据库: 通过下面sql就可以查出来,有2位col*100,有3位col*1000,一次类推: select * from ws_inventory_item ...

  5. mysql 查询慢_MySQL查询缓慢的N种原因,以及N+1种解决方法

    昨天查询数据库的时还正常,今早来上班时,SQL语句查询就突然变得很慢了.这样的情况我相信你一定遇到过. 下面就让小编来带你了解其中的原因吧! 本篇文章简单总结了一下可能导致数据库查询慢的原因,希望能给 ...

  6. mysql获取去年同期_mysql 查询当天、昨天、本周、上周、本月、上月、今年、去年数据...

    mysql查询今天.昨天.7天.近30天.本月.上一月 数据 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT ...

  7. mysql sysdate本周_mysql 查询当天、本周,本月,上一个月的数据

    1.当前日期 当前时间select DATE_SUB(curdate(),INTERVAL 0 DAY) ; 时间戳:SELECT UNIX_TIMESTAMP(CAST(SYSDATE()AS DA ...

  8. mysql 查找数据_Mysql查询数据

    查询语句 单表查询 1.1 全表查寻 select * from employee; 复制代码1.2 指定字段查询 查询职员表中所有职员姓名和入职时间 select empname,hirdate f ...

  9. mysql数据库查询缓存_MySQL查询缓存与数据库管理

    MySQL查询缓存与数据库管理 上一篇 / 下一篇  2010-01-25 21:51:07 / 个人分类:MYSQL/Cache MySQL查询缓存 注意:查询缓存绝不返回过期数据. 如果一个表发生 ...

最新文章

  1. VMware Resource Pool Recommendations
  2. 计算机网络期中考试题周静,期中考试优秀作文
  3. 让人深思......
  4. react+redux+generation-modation脚手架搭建一个todolist
  5. 视频转换工具(命令行)
  6. 项目管理工具project软件学习(八) - 关键路径查询、资源可用性
  7. Java面向对象之异常处理机制(try-catch-finally、throws、自定义异常)
  8. Java log4j使用
  9. C#:System.Data.SQLite数据库介绍
  10. js计算时间差(天、小时、分钟、秒)(日期计算)
  11. 计算机系的土味情话,大学各专业土味情话
  12. Access数据库压缩失败后修复经历
  13. 大数据分析与应用(中级) 数据挖掘概念及流程
  14. 操作系统和指弹吉他的联系
  15. 基于Paddle复现《Neighbor2Neighbor: Self-Supervised Denoising from Single Noisy Images》降噪网络
  16. mysql from多表顺序_数据库 from 表的顺序
  17. 基于QT搭建的网易云音乐
  18. 完整dm368打印信息
  19. xp桌面上的计算机管理,如何解决WinXP系统开机桌面变白显示恢复Active Desktop的问题?...
  20. 2977 二叉堆练习1

热门文章

  1. DDos攻击防御教程
  2. 推出新浪微博粉丝关注统计分析业务
  3. java安卓百度地图查找便利店_Android 百度地图POI搜索功能实例代码
  4. 仪表放大器放大倍数分析-运算放大器
  5. VW虚拟机Ubuntu18.04安装tools
  6. jQuery.fn的作用是什么
  7. 除了数字化营销,汽车之家Q2财报还有什么看点?
  8. 软件测试标准流程(思维导图版)
  9. SQL中内部表和外部表的区别
  10. c语言名人名言大全摘抄,数学名人名言大全摘抄