MySQL 时间查询语句

上个月今天的当前时间:
SELECT date_sub(NOW(),interval 1 month)
上个月今天的当前时间(时间戳):
SELECT UNIX_TIMESTAMP(date_sub(NOW(),interval 1 month))
上个月的第一天 :
SELECT date_sub(date_sub(DATE_FORMAT(NOW(),'%y-%m-%d 08:00:00'),interval
extract( DAY FROM NOW())-1 day),interval 1 month)
上个月的第一天(时间戳):
SELECT UNIX_TIMESTAMP(date_sub(date_sub(DATE_FORMAT(NOW(),'%y-%m-%d 08:00:00'),
interval extract( DAY FROM NOW())-1 day),interval 1 month))
上个月的最后一天:
SELECT date_sub(date_sub(DATE_FORMAT(NOW(),'%y-%m-%d'),interval
extract(DAY FROM NOW()) day),interval 0 month) as date
这个月的第一天:
SELECT date_sub(date_sub(DATE_FORMAT(NOW(),'%y-%m-%d'),interval
extract(DAY FROM NOW())-1 day),interval 0 month)
这个月的最后一天:
SELECT date_sub(date_sub(DATE_FORMAT(NOW(),'%y-%m-%d'),interval
extract(DAY FROM NOW()) day),interval -1 month) as date
本周的第一天:
SELECT date_sub(curdate(),INTERVAL WEEKDAY(curdate()) + 1 DAY)
本周最后一天:
SELECT date_sub(curdate(),INTERVAL WEEKDAY(curdate()) - 5 DAY)

MySQL里获取当前week、month、quarter的第一天/最后一天
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)

No Comments