0%

mysql时间获取周日月季度起止时间

  • 获取当前时间在这一年是第几周(国外计算方式,周日为一周的第一天)
  • 获取当前时间在这一年是第几周(中国计算方式,周一为一周的第一天)
  • 获取当前周的第一天日期
  • 获取当前周的最后一天日期
  • 获取指定某年某一周的起止日期
  • 获取当前月份第一天日期
  • 获取当前月份最后一天日期
  • 获取指定年份月份的起止日期
  • 获取现在是今年的第几个季度
  • 获取当前季度的第一天日期
  • 获取当前季度的最后一天日期
  • 获取指定季度的起止日期

获取当前时间在这一年是第几周(国外计算方式,周日为一周的第一天)

1
2
3
4
5
/* 获取指定时间在这一年是第几周 可以把 CURDATE() 函数替换成你的指定时间 */

SELECT WEEK(CURDATE());

SELECT YEARWEEK(CURDATE());

获取当前时间在这一年是第几周(中国计算方式,周一为一周的第一天)

1
2
3
4
5
/* 获取指定时间在这一年是第几周 可以把 CURDATE() 函数替换成你的指定时间 */

SELECT WEEK(CURDATE(),1);

SELECT WEEKOFYEAR(CURDATE());

周起止时间获取

1
2
3
4
5
6
7
8
-- 获取当前周的第一天日期
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 0 DAY);
-- 获取当前周的最后一天日期
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY);
-- 上周周一日期
select DATE_SUB( DATE_SUB(CURDATE(),interval 7 day),interval weekday(DATE_SUB(CURDATE(),interval 7 day)) +0 Day) as preWeekStartDay
-- 上周周日日期
SELECT DATE_SUB( DATE_SUB(CURDATE(),interval 7 day),interval weekday(DATE_SUB(CURDATE(),interval 7 day)) -6 Day) as preWeekEndDay

获取指定某年某一周的起止日期

1
2
3
4
5
/* 指定某年某一周的第一天日期 */
SELECT DATE_SUB((DATE_SUB(CONCAT(指定年份,'-01-01'), INTERVAL -(指定第几周-1) WEEK)),INTERVAL WEEKDAY((DATE_SUB(CONCAT(指定年份,'-01-01'), INTERVAL -(指定第几周-1) WEEK))) + 0 DAY)
/* 指定某年某一周的最后一天日期 */
SELECT DATE_SUB((DATE_SUB(CONCAT(指定年份,'-01-01'), INTERVAL -(指定第几周-1) WEEK)),INTERVAL WEEKDAY((DATE_SUB(CONCAT(指定年份,'-01-01'), INTERVAL -(指定第几周-1) WEEK))) - 6 DAY)

获取当前月份第一天日期

1
SELECT CONCAT(DATE_FORMAT(LAST_DAY(CURRENT_DATE()),'%Y-%m-'),'01'); 

获取当前月份最后一天日期

1
SELECT LAST_DAY(CURRENT_DATE()); 

获取指定年份月份的起止日期

1
2
3
4
5
6
7
/* 指定年份月份的第一天日期 */

SELECT CONCAT_WS('-',指定年份,指定月份,'01');

/* 指定年份月份的最后一天日期 */

SELECT LAST_DAY(指定时间);

获取现在是今年的第几个季度

1
SELECT QUARTER(CURRENT_DATE());

获取当前季度的第一天日期

1
SELECT CONCAT(DATE_FORMAT(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM  CURDATE()),1) + INTERVAL QUARTER(CURDATE())*3-3 MONTH),'%Y-%m-'),'01');   

获取当前季度的最后一天日期

1
SELECT LAST_DAY(MAKEDATE(EXTRACT(YEAR  FROM CURDATE()),1) + INTERVAL QUARTER(CURDATE())*3-1 MONTH);  

获取指定季度的起止日期

1
2
3
4
5
6
7
/* 指定季度的第一天日期 */

SELECT CONCAT(DATE_FORMAT(LAST_DAY(MAKEDATE(指定年份,1) + INTERVAL 指定季度*3-3 MONTH),'%Y-%m-'),'01');

/* 指定季度的最后一天日期 */

SELECT LAST_DAY(MAKEDATE(指定年份,1) + INTERVAL 指定季度*3-1 MONTH);

Welcome to my other publishing channels