`

MYSQL中取当前周/月/季/年的第一天与最后一天

 
阅读更多
http://my.oschina.net/zx0211/blog/698252


#当年第一天:
SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY);

#当年最后一天:
SELECT concat(YEAR(now()),'-12-31');  

#当前week的第一天:  
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY);

#当前week的最后一天:  
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY);

#前一week的第一天:  
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 8 DAY);

#前一week的最后一天:  
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 2 DAY);

#前两week的第一天:  
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 15 DAY);

#前两week的最后一天:  
select date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 9 DAY);

#当前month的第一天:  
SELECT concat(date_format(LAST_DAY(now()),'%Y-%m-'),'01');

#当前month的最后一天:  
SELECT  LAST_DAY(now());

#前一month的第一天:  
SELECT concat(date_format(LAST_DAY(now() - interval 1 month),'%Y-%m-'),'01');

#前一month的最后一天:  
SELECT LAST_DAY(now() - interval 1 month);

#前两month的第一天:  
SELECT concat(date_format(LAST_DAY(now() - interval 2 month),'%Y-%m-'),'01');

#前两month的最后一天:  
SELECT  LAST_DAY(now() - interval 2 month);

#当前quarter的第一天:  
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM  CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01'); 

#当前quarter的最后一天:  
select LAST_DAY(MAKEDATE(EXTRACT(YEAR  FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month);

#前一quarter的第一天:  
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-6 month),'%Y-%m-'),'01');

#前一quarter的最后一天:  
select  LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-4 month);

#前两quarter的第一天:  
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-9 month),'%Y-%m-'),'01');

#前两quarter的最后一天:  
select LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-7 month);
分享到:
评论

相关推荐

    MySql工作中常用

    DAYOFMONTH()给出日期在当月的哪一天,范围从1到31,DAYOFYEAR()则返回日期在当年的第几天,范围从1到366。MONTH()函数返回日期所在的月份,值为1到12。DAYNAME()和MONTHNAME()分别返回日期对应的星期名和月份名。...

    mysql的日期和时间函数

     -> 2 WEEK(date) WEEK(date,first) 对于星期日是一周中的第一天的场合,如果函数只有一个参数调用,返回 date 为一年的第几周,返回值范围为 0 到 53 (是的,可能有第 53 周的开始)。两个参数形式的 ...

    获得指定月的和第一秒和最后一秒

    标题中的“获得指定月的和第一秒和最后一秒”指的是在编程中获取特定月份的第一天的零时零分零秒和最后一天的最后一秒的时间戳,这通常涉及到日期和时间的处理。在Java中,我们可以使用`java.time`包或者旧的`java....

    mysql 将字段time按天/月/年分组

    假设表中有一个字段time,格式为Unix...按月,按年分组方法一样,只需要修改convert()方法第一个参数的长度。 您可能感兴趣的文章:分组后分组合计以及总计SQL语句(稍微整理了一下)SQL SERVER 分组求和sql语句MY

    Mysql数据库连接驱动

    第一章,前一章,下一章, 最后一章, 目录. -------------------------------------------------------------------------------- 1 MySQL 的一般信息 这是MySQL参考手册;它记载了MySQL版本3.23.7-alpha。 MySQL...

    MysqL时间处理函数

    MySQL时间处理函数是数据库操作中不可或缺的部分,它们用于创建、修改和分析与日期和时间相关的数据。MySQL提供了丰富的函数库来处理各种时间/日期相关的计算和转换,这使得在存储和检索时间信息时非常灵活。 1. **...

    Java实现:月,日,年,周,访问量统计

    但是,不同地区对一周的第一天有不同的定义(比如在美国是星期日,而在一些欧洲国家是星期一)。你需要根据目标地区的习惯来确定每周的起始日。 5. **统计方法**:你可以编写方法来计算特定时间范围内的访问量,...

    mysql数据库windows定时备份dos

    在这个场景中,我们可以利用DOS命令行工具来实现这一功能,无需复杂的第三方软件。下面将详细介绍如何在Windows 7、Windows 10以及Windows Server 2008等操作系统上设置MySQL的定时备份。 首先,我们需要了解DOS...

    hibernate第一天笔记

    《Hibernate入门:第一天笔记详解》 Hibernate,作为Java领域中著名的ORM(Object-Relational Mapping)框架,极大地简化了数据库操作,让开发者可以更加专注于业务逻辑而不是底层的数据访问。本文将基于第一天学习...

    mysql数据库日期函数大全-fan.docx

    这条语句将当前日期减去 date_col 的日期,计算出 date_col 在最后 30 天以内的记录。 2. WEEKDAY 函数 WEEKDAY 函数用于返回日期的星期索引,范围从 0(星期一)到 6(星期天),例如: mysql> SELECT WEEKDAY('...

    mysql5.6备份实例教程(innobackupex工具)

    例如,第一天进行一次全量备份,第二天进行增量备份时,`--incremental`参数指定了基于前一天的备份目录(`--incremental-basedir`),这样可以仅备份自上次备份以来发生更改的数据,显著减少备份的时间和存储需求。...

    MySQL学习第四天 Windows 64位系统下使用MySQL

    在MySQL学习的第四天,我们将关注在Windows 64位操作系统环境下如何管理和使用...在后续的学习中,你还可以查阅第一天接触MySQL、第二天的安装配置以及第三天的验证MySQL等内容,逐步巩固和扩展你的MySQL知识体系。

    mysql滑动聚合/年初至今聚合原理与用法实例分析

    在SQL查询中,我们只需要将下限设置为当年的第一天,即DATE_FORMAT(a.ordermonth, '%Y-01-01'),上限则保持为当前月份。这样就可以得到员工今年至今的订单统计。 在实际应用中,可能需要对滑动聚合的结果进行进一步...

    mysql sql.doc

    `WEEKDAY`函数返回给定日期是一周中的哪一天(0表示星期一,1表示星期二,以此类推)。在第二个查询中,用于确定当前日期相对于周期开始日的位置。 7. **比较运算符和逻辑运算符**: 使用`, `, `>=` 和 `=`等比较...

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

    // 获取上个月的第一天的时间戳 $lastMonth = mktime(date('h'), date('i'), date('s'), date('m') - 1, date('d'), date('y')); // 获取前三个月的第一天的时间戳 $lastThreeMonths = mktime(date('h'), date('i')...

    MySQL按时间统计数据的方法总结

    - `%x`:年,其中的星期一是周的第一天,4 位,与 `%v` 使用 - `%Y`:年,4 位 - `%y`:年,2 位 当你需要获取当前时间,可以使用`now()`或`sysdate()`函数: ```sql SELECT SYSDATE() FROM DUAL; SELECT NOW() ...

    MYSQL定时清除备份数据的具体操作

    配置MySQL的Event Scheduler是实现定时任务的第一步。默认情况下,此功能可能是关闭的,可以通过以下SQL查询来检查其状态: ```sql SHOW VARIABLES LIKE '%event_scheduler%'; ``` 如果返回的值为"OFF",可以通过...

    MySQL常用时间函数详解(推荐)

    - `%X`: 年,其中的星期日是周的第一天,4 位,与 %V 使用 - `%x`: 年,其中的星期一是周的第一天,4 位,与 %v 使用 - `%Y`: 年,4 位 - `%y`: 年,2 位 掌握这些MySQL时间函数对于数据库查询和报表生成至关重要,...

    mysql中常用日期比较与计算函数

    `WEEK()` 返回日期所在的周数,可选第二个参数指定周日或周一作为一周的开始。例如: ```sql SELECT WEEK('1998-02-20', 0), WEEK('1998-02-20', 1); ``` 6. `YEAR()`,`HOUR()`,`MINUTE()`,`SECOND()` 函数...

Global site tag (gtag.js) - Google Analytics