'
//php获取今日开始时间戳和结束时间戳?
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'))
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1
echo?"今日开始时间戳和结束时间戳",'开始:',$beginToday,'结束:',$endToday,'
'
echo?"今日开始时间:",date("Y-m-d?H:i:s",$beginToday),'
'
echo?"今日结束时间:",date("Y-m-d?H:i:s",$endToday),'
'
echo?''
//php获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'))
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1?
echo?"昨日开始时间戳和结束时间戳",'开始:',$beginYesterday,'结束:',$endYesterday,'
'
echo?"昨日开始时间:",date("Y-m-d?H:i:s",$beginYesterday),'
'
echo?"昨日结束时间:",date("Y-m-d?H:i:s",$endYesterday),'
'
echo?''
//php获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'))
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'))
echo?"上周开始时间戳和结束时间戳",'开始:',$beginLastweek,'结束:',$endLastweek,'
'
echo?"上周开始时间:",date("Y-m-d?H:i:s",$beginLastweek),'
'
echo?"上周结束时间:",date("Y-m-d?H:i:s",$endLastweek),'
'
echo?''
//php获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'))
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'))
echo?"本月开始时间戳和结束时间戳",'开始:',$beginThismonth,'结束:',$endThismonth,'
'
echo?"本月开始时间:",date("Y-m-d?H:i:s",$beginThismonth),'
'
echo?"本月结束时间:",date("Y-m-d?H:i:s",$endThismonth),'
'
?>
select left(FROM_UNIXTIME(Order_Endtime),7), count(1)
from tableName
group by left(FROM_UNIXTIME(Order_Endtime),7)
如果需要查看某个时间段,加上where条件
如果按年统计,7改成4
今天是X号
a = x % 7, 求余
b = floor(X / 7) , x/7 然后取整
如果a==0, 结果为b,否则
c = 本月1号是周几, 计算从1号 到a号是否包含周二
如果包含,结果为b+1
否则,结果为b
最终的SQL语句为:
SELECT
if(dayofmonth(now()) % 7=0, dayofmonth(now())/7,
if((1 between weekday(date_sub(now(), interval dayofmonth(now())-1 day)) and weekday(date_sub(now(), interval dayofmonth(now())+dayofmonth(now())%7-1 day))) or
(8 between weekday(date_sub(now(), interval dayofmonth(now())-1 day)) and weekday(date_sub(now(), interval dayofmonth(now())+dayofmonth(now())%7-1 day))), floor(dayofmonth(now())/7)+1, floor(dayofmonth(now())/7))
)
如果使用变量改写一下SQL,看起来更简单一些:
set @a=dayofmonth(now()) % 7
set @b=dayofmonth(now()) / 7
set @c=weekday(date_sub(now(), interval dayofmonth(now())-1 day))
set @d=weekday(date_sub(now(), interval dayofmonth(now())+@a-1 day))
SELECT
if(@a=0, @b,
if((1 between @c and @d) or (8 between @c and @d), floor(@b)+1, floor(@b))
) as result
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)