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())-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(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now())-1 day),interval 1 month)
解释:
date_format(now(),'%y-%m-%d') 以年月日的形式获取当前时间
EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等
day from now() 当前时间的日期
extract(day from now())-1 day) 从当前时间的日期-1天
如果N为NULL,它将返回-1。列表值必须是N1<N2<N3的形式才能正常工作。下面的代码是显示 INTERVAL()函数如何工作的一个简单的例子:
DATE_SUB(date,INTERVAL expr type)
date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now())-1 day) 减去当前日期-1的天数 为本月的第一天
date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract(day from now())-1 day),interval 1 month) 再减去1个月 为上个月第一天