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

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

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

或者:

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

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

查询今天的信息记录:

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

查询昨天的信息记录:

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

查询近7天的信息记录:

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

查询近30天的信息记录:

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

查询本月的信息记录:

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

查询上一月的信息记录:

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

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

(1)to_days

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

01mysql> select  to_days('2010-11-22 14:39:51');

02+--------------------------------+

03| to_days('2010-11-22 14:39:51') |

04+--------------------------------+

05|                         734463 |

06+--------------------------------+

07

08mysql> select  to_days('2010-11-23 14:39:51');

09+--------------------------------+

10| to_days('2010-11-23 14:39:51') |

11+--------------------------------+

12|                         734464 |

13+--------------------------------+

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

提醒:

(1)to_days() 不用于阳历出现(1582)前的值,原因是当日历改变时,遗失的日期不会被考虑在内。因此对于1582 年之前的日期(或许在其它地区为下一年 ), 该函数的结果实不可靠的。

(2)MySQL"日期和时间类型"中的规则是将日期中的二位数年份值转化为四位。因此对于'1997-10-07'和'97-10-07'将被视为同样的日期:

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

2

3-> 729669, 729669

(2)str_to_date

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

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

2

3+--------------------------------------------------------+

4| str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s') |

5+--------------------------------------------------------+

6| 2010-11-23 14:39:51                                    |

7+--------------------------------------------------------+

具体案例操作如下:

1select str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')

2from article

3where 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';

php mysql查询日期,​mysql查询日期的方法相关推荐

  1. mysql子查询日期比较_数据分析系列 16/32 | MySQL中子查询与联合查询

    前面说了很多MySQL中的查询,比如条件查询.分组聚合查询.连接查询,今天来说一下另外两个非常的重要的查询,MySQL中的子查询和联合查询. PART01 子查询 子查询也称嵌套查询,是将一个查询语句 ...

  2. mysql慢查询日志时间戳_Mysql查询在时间戳的日期范围内非常慢

    要提高此查询的性能,请使用合适的索引(将date_run作为索引中的前导列),并在等效谓词中引用"裸列". 在函数中包装列(如DATE(),就像在查询中一样)会禁用MySQL优化器 ...

  3. db2有MySQL那样的时间戳_MySQL 按照日期格式查询带有时间戳数据

    按照日期格式查询带有时间戳数据一般在MSQL数据库中的时间都是以时间戳的格式来存储时间的,但是对于我们来说,时间戳格式具体表示的是什么时间,我们很难一眼看出来,所以当我们要具体查询某一个时间或时间段的 ...

  4. mysql日期代码_mysql日期查询操作代码

    mysql日期查询操作 mysql日期函数与mysql日期查询操作. 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 Sel ...

  5. 【MySQL】根据数据表中日期字段查询某个月每一天的数据量?查询数据表中所有日期每天的数据量?近三天每天数据量?

    前提这个table有一个日期字段date_time之类的 1.根据数据表中日期字段查询某个月每一天的数据量 如果要获取8月的数据,可以这么写: SELECT count(*), DATE_FORMAT ...

  6. mysql 日期截止,MySQL查询以开始日期和结束日期计算日期范围内的天数

    要计算日期范围内的天数,您需要使用来查找日期之间的差额DATEDIFF(). 让我们首先创建一个表:mysql> create table DemoTable730 ( StartDate da ...

  7. mysql将时间戳转换成日期_mysql 中查询时如何将时间戳转换为日期格式 / 日期格式转换为时间戳...

    在数据库的使用中,经常需要按指定日期来查询记录,以便于统计,而在数据库中,有很多存储的是时间戳, 也有的直接存日期,查询的时候可能不是那么好弄. mysql提供了两个函数: from_unixtime ...

  8. mysql日期与时间查询语句:查询当年、查询本年、查询当月、查询本周

    mysql日期与时间查询语句:查询当年.查询本年.查询当月.查询本周 select sum(1) as years, (select sum(1) from `表名` where date_forma ...

  9. php按选定日期查询,php mysql查询指定范围内日期

    摘要 腾兴网为您分享:php mysql查询指定范围内日期,掌上新华,掌上公交,学习帮,喜马拉雅等软件知识,以及mts,97漫画网,三菱plc编程软件win10,零点八,2016考研国家线,生化奇兵补 ...

  10. mysql时间戳转换成日期_mysql查询时间戳和日期的转换

    在数据库的使用中,经常需要按指定日期来查询记录,以便于统计,而在数据库中,有很多存储的是时间戳, 也有的直接存日期,查询的时候可能不是那么好弄. mysql提供了两个函数: from_unixtime ...

最新文章

  1. 工控系统的指纹识别技术
  2. 23种设计模式C++源码与UML实现--组合模式
  3. 未发现数据源名称_在Power BI中管理数据源Analysis Services
  4. 大数据思维是企业互联网化的思维内核
  5. GDB的工作原理及skyeye远程调试
  6. wampserver mysql乱码_ajax +json +php提交mysql数据库 中文乱码(wamp server 本地测试)求解?...
  7. 中国基站射频设备行业市场供需与战略研究报告
  8. jdk生成keystore、tomcat配置https
  9. 【ACL2020】DeeBERT:衡量性能与效率的 BERT 推理方法
  10. 【转参考】MySQL利用frm和ibd文件进行数据恢复
  11. 【微信公众号后台基础能力接口对接】
  12. Linux系统基本操作及命令详解
  13. 头像框DIY制作小程序源码王者吃鸡等气泡头像框在线生成源码
  14. linux hba卡超时时间,如何设置Emulex HBA 卡超时参数
  15. ArcGIS API for iOS在俄勒冈大学校园中的创新应用
  16. CTF练习题——bugkuCTF 网站被黑题目思路分析
  17. Android平台上的PacketSender
  18. python实现骰子猜大小游戏
  19. 怎样抓CD音轨存为WMA文件
  20. eclipse出现Parameter index out of range (1 number of parameters, which is 0)报错

热门文章

  1. 公布一年前发现阿里旺旺的一个xss漏洞的细节。
  2. 搭建量化系统|股票数据的除权和复权
  3. 越老越吃香的计算机专业,大四学长:最有前途的4个理工专业,毕业工作不愁,还越老越吃香...
  4. 如何选择及管理腾讯云 MySQL 数据库
  5. 各大网商店铺历史价格分析原理
  6. Unity的坑——避免用New来创建继承于MonoBehaviour脚本的对象
  7. 511遇见易语言API模块线程销毁TerminateThread
  8. beta分布的直观理解
  9. 【吴恩达机器学习】第二周课程精简笔记——多元线性回归和计算参数分析
  10. 字符编码问题总结(11年3月1日)