Mysql日期查询的详细介绍

查询当前日期

SELECT CURRENT_DATE();
SELECT CURDATE();

查询当前日期和时间

SELECT NOW();

查询今天的数据

SELECT * FROM `表名` WHERE TO_DAYS(NOW()) = TO_DAYS(`字段`);
SELECT * FROM `表名` WHERE TO_DAYS(NOW()) - TO_DAYS(`字段`) = 0;

查询昨天的数据

SELECT * FROM ``表名`` WHERE TO_DAYS(`字段`) = TO_DAYS(NOW()) -1;
SELECT * FROM ``表名`` WHERE TO_DAYS(`字段`) - TO_DAYS(NOW()) = -1;
SELECT * FROM ``表名`` WHERE TO_DAYS(NOW()) = TO_DAYS(`字段`) +1;
SELECT * FROM ``表名`` WHERE TO_DAYS(NOW()) - TO_DAYS(`字段`) = 1;

查询最近七天的数据

SELECT * FROM `表名` WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= DATE(`字段`);

查询最近三十天的数据

SELECT * FROM table WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= DATE(`字段`);

查询本周的数据

SELECT * FROM `表名` WHERE YEARWEEK(date_format(`字段`,'%Y-%m-%d')) = YEARWEEK(CURDATE());
SELECT * FROM `表名` WHERE YEARWEEK(date_format(`字段`,'%Y-%m-%d')) - YEARWEEK(CURDATE()) = 0;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) = YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d'));
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) - YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d')) = 0;

查询上周的数据

SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) = YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d')) - 1;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) - YEARWEEK(DATE_FORMAT(CURDATE(),'%Y-%m-%d')) = -1;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) = YEARWEEK(CURDATE()) - 1;
SELECT * FROM `表名` WHERE YEARWEEK(DATE_FORMAT(`字段`,'%Y-%m-%d')) - YEARWEEK(CURDATE()) = -1;

查询当月的数据

SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y-%m') = DATE_FORMAT(CURDATE(),'%Y-%m');
SELECT * FROM `表名` WHERE MONTH(`字段`) - MONTH(NOW()) = 0;
SELECT * FROM `表名` WHERE MONTH(`字段`) = MONTH(NOW());

查询上月的数据

SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y-%m') = DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 MONTH),'%Y-%m');

查询本季度的数据

SELECT * FROM `表名` WHERE QUARTER(`字段`) = QUARTER(NOW()) AND YEAR(`字段`) = YEAR(NOW());

查询上季度的数据

SELECT * FROM `表名` WHERE QUARTER(`字段`) = QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER)) AND YEAR(`字段`) = YEAR(NOW());

查询上半年(六个月)的数据

SELECT * FROM `表名` WHERE `字段` BETWEEN DATE_SUB(NOW(),INTERVAL 6 MONTH) AND NOW();

查询今年的数据

SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y') = DATE_FORMAT(NOW(),'%Y');
SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y') - DATE_FORMAT(NOW(),'%Y') = 0;
SELECT * FROM `表名` WHERE YEAR(NOW()) = YEAR(`字段`);
SELECT * FROM `表名` WHERE YEAR(NOW()) - YEAR(`字段`) =0;

查询去年的数据

SELECT * FROM `表名` WHERE DATE_FORMAT(`字段`,'%Y') - DATE_FORMAT(NOW(),'%Y') = -1;
SELECT * FROM `表名` WHERE YEAR(NOW()) = YEAR(`字段`) + 1;
SELECT * FROM `表名` WHERE YEAR(NOW()) - YEAR(`字段`) = 1;

到此这篇关于Mysql之日期查询的详细介绍的文章就介绍到这了,更多相关Mysql之日期查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql中取系统当前时间,当前日期方便查询判定的代码

    php中常通过下面的代码,得到判定日期的sql查询语句 复制代码 代码如下: $now = time(); //获取当期的日期 $sql="select * from `team` where end_time>$now ORDER BY sort_order limit 0,4"; 获取当前时间的MySql时间函数 处理MySql时间日期的函数有很多,下面为您介绍的就是用于获取当前时间的MySql时间函数,如果您对此感兴趣的话,不妨一看 下面为您介绍的MySql时间函数用于获取

  • mysql如何查询两个日期之间最大的连续登录天数

    前言 最近工作中遇到一个需求,是根据用户连续记录天数来计算的,求出用户在一段时间内最大的连续记录时间,例如在 2016-01-01 和 2016-01-28 之间,如果用户在3号和4号都记录了,那么连续记录天数为2,如果用户在6号-10号每日都记录了,那么最大连续记录天数为5. 拿到这个需求的时候,说实话有点懵,第一想到的就是在代码中去统计,会用到循环,想到那么多个用户,并且时间跨度也有点大,比如15年到16年,两年时间,想想就有点恐怖. 解决方案 然后就把这个需求跟朋友说了,朋友也觉得有点难搞

  • mysql 查询指定日期时间内sql语句实现原理与代码

    在数据库教程设计时必须注意时间字段为int(11)这样,保存在数据库的是一个数字型日期时间戳,我们可以用mktime函数求出当前日期的时间戳进行加减就OK了,下面看实例 //一个月 复制代码 代码如下: $lastMonth = mktime(date('h'),date('i'),date('s'),date('m')-1,date('d'),date('y')); $where .= " dtime > $lastMonth"; //三个月 复制代码 代码如下: $lastT

  • MySQL查询两个日期之间记录的方法

    网上搜索出来的结果多是下面答案: MySQL中,如何查询两个日期之间的记录,日期所在字段的类型为datetime(0000-00-00 00:00:00) 解决方案: 直接使用><=就可以查询. where createDate<'2003-5-31' and createDate>'2003-2-30'; 其实简单美好的写法可以是这样的 where createDate between'2010-08-01'  and  '2010-08-19' 看完了之后,你是不是觉得后者比较

  • MySql日期查询语句详解

    使用DATE_FORMAT方法SELECT * FROM `ler_items` WHERE DATE_FORMAT(postTime,'%Y-%m')='2013-03'注意:日期一定要用'',否则没有效果其它的一些关于mysql日期查找语句mysql> select date_format(DATE_SUB(CURDATE(), INTERVAL 7 DAY),'%y%m%d');+-------------------–+| date_format(DATE_SUB(CURDATE(),

  • Mysql根据时间查询日期的优化技巧

    例如查询昨日新注册用户,写法有如下两种: EXPLAIN select * from chess_user u where DATE_FORMAT(u.register_time,'%Y-%m-%d')='2018-01-25'; EXPLAIN select * from chess_user u where u.register_time BETWEEN '2018-01-25 00:00:00' and '2018-01-25 23:59:59'; register_time字段是date

  • Mysql日期查询的详细介绍

    查询当前日期 SELECT CURRENT_DATE(); SELECT CURDATE(); 查询当前日期和时间 SELECT NOW(); 查询今天的数据 SELECT * FROM `表名` WHERE TO_DAYS(NOW()) = TO_DAYS(`字段`); SELECT * FROM `表名` WHERE TO_DAYS(NOW()) - TO_DAYS(`字段`) = 0; 查询昨天的数据 SELECT * FROM ``表名`` WHERE TO_DAYS(`字段`) = T

  • MySQL高级查询示例详细介绍

    目录 1.左关联 2.右关联 3.子查询 4.联合查询 5.分组查询 1.左关联 MySQL中的左关联(Left Join)是一种基于共同列的连接操作, 它将左侧表中的所有行与右侧表中匹配的行结合在一起, 如果右侧表中没有匹配的行,则结果集中右侧表中的所有列将显示为NULL. 左侧表是指在关键字LEFT JOIN中出现在关键字左侧的表. 下面是一个使用MySQL的LEFT JOIN进行连接操作的简单示例: 假设我们有两个表,一个是学校表(school),包含学校的ID和名称: 另一个是年级表(g

  • MySQL之存储函数详细介绍

    目录 1.创建存储函数 2 .调用存储函数 3.删除存储函数 4.查看存储过程 5.修改存储函数 6.对比存储函数和存储过程 7.练习题加强 1.创建存储函数 语法格式: CREATE FUNCTION 函数名(参数名 参数类型,...) RETURNS 返回值类型 BEGIN 函数体 #函数体中肯定有 RETURN 语句 END 说明: 参数列表: FUNCTION中总是默认为IN参数 RETURNS 后的语句表示函数返回数据的类型: RETURNS子句只能对FUNCTION做指定,对函数而言

  • mysql数据库之索引详细介绍

    目录 思维导图 简单理解 索引模型的演变 二叉查找树 自平衡二叉树 B树 B+树 聚集索引与二级索引 总结 如果你想深入了解为什么mysql可以快速的进行检索数据,那么你一定要来了解一下mysql的索引原理 思维导图 简单理解 你可以把索引理解为一本书的目录,我们可以通过索引快速的找到我们需要的数据,大概就像下面这个图,索引就像是右边的二叉树,每个节点指向具体的数据的物理地址,先通过二叉树找到数据的位置,然后再去物理磁盘中获取数据. 但是不同的二叉树的特性不同,我们还要选择合适的树来作为索引,所

  • MySql日期查询数据的实现

    目录 日期函数解析 按天 昨天 指定天数 按周 按月 按季度 按年 日期函数解析 date_format()格式化日期格式,“date_format(时间戳,时间格式)” date_sub()从日期减去指定的时间间隔:函数形式DATE_SUB(date,INTERVAL expr type),date 参数是合法的日期表达式.expr 参数是您希望添加的时间间隔,时间间隔参数非常全面,常用的为 年月日时分秒: //减天数 date_sub(时间,INTERVAL 1 DAY) //减月份 dat

  • Mysql表的操作方法详细介绍

    目录 创建表 查看表结构 修改表 删除表 创建表 语法: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 说明: field 表示列名 datatype 表示列的类型 character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 collate 校验规则,如果没有指定校验规则,则以

  • MySQL内部函数的超详细介绍

    目录 字符串函数 1. length(str) 2. concat(str1,str1,…) 3. insert(str1,n,m,str2) 4. lower(str) 5. upper(str) 6. left(str,n) 7. right(str,n) 8. trim(str) 9. substring(str,n,m) 10. reverse(str) 数学函数 日期函数 聚合函数 系统信息函数 格式化函数 总结 字符串函数 1. length(str) 计算字符串的长度. selec

  • 基于MySQL分区性能的详细介绍

    一,      分区概念  分区允许根据指定的规则,跨文件系统分配单个表的多个部分.表的不同部分在不同的位置被存储为单独的表.MySQL从5.1.3开始支持Partition. 分区和手动分表对比 手动分表  分区 多张数据表 一张数据表 重复数据的风险 没有数据重复的风险 写入多张表 写入一张表 没有统一的约束限制 强制的约束限制 MySQL支持RANGE,LIST,HASH,KEY分区类型,其中以RANGE最为常用: Range(范围)–这种模式允许将数据划分不同范围.例如可以将一个表通过年

  • Mysql数据库锁定机制详细介绍

    前言 为了保证数据的一致完整性,任何一个数据库都存在锁定机制.锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一.本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析. MySQL锁定机制简介 数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则.对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外.MyS

随机推荐