本文共 1780 字,大约阅读时间需要 5 分钟。
[sql]
MySQL里获取当前week、
month
、quarter的第一天/最后一天
当前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
)本文转自 zl1030 51CTO博客,原文链接:http://blog.51cto.com/zl1030/1694714
转载地址:http://twbzx.baihongyu.com/