mysql中计算出今天,昨天,近一周,近一月数据sql咋写?

mysql中计算出今天,昨天,近一周,近一月数据sql咋写?,第1张

首先要考虑给数据库减压,意思就是让数据库做最简单的事情。你可以把条件在php里边组装好,然后让mysql只单一的执行查询就好了,php的时间代码给你贴一下吧

<?php

date_default_timezone_set('Asia/Shanghai') 

echo "今天:".date("Y-m-d H:i:s")."<br>"     

echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>"     

echo "明天:".date("Y-m-d",strtotime("+1 day")). "<br>"  

echo "一周后:".date("Y-m-d",strtotime("+1 week")). "<br>" 

echo "一周前:".date("Y-m-d",strtotime("-1 week")). "<br>"    

echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")). "<br>"     

echo "下个星期四:".date("Y-m-d",strtotime("next Thursday")). "<br>"     

echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br>"     

echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br>"     

echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br>"     

echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br>" 

echo '<hr/>'

//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,'<br/>'

echo "今日开始时间:",date("Y-m-d H:i:s",$beginToday),'<br/>'

echo "今日结束时间:",date("Y-m-d H:i:s",$endToday),'<br/>'

echo '<hr/>'

//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,'<br/>'

echo "昨日开始时间:",date("Y-m-d H:i:s",$beginYesterday),'<br/>'

echo "昨日结束时间:",date("Y-m-d H:i:s",$endYesterday),'<br/>'

echo '<hr/>'

//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,'<br/>'

echo "上周开始时间:",date("Y-m-d H:i:s",$beginLastweek),'<br/>'

echo "上周结束时间:",date("Y-m-d H:i:s",$endLastweek),'<br/>'

echo '<hr/>'

//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,'<br/>'

echo "本月开始时间:",date("Y-m-d H:i:s",$beginThismonth),'<br/>'

echo "本月结束时间:",date("Y-m-d H:i:s",$endThismonth),'<br/>'

?>

太笼统了你都没说清楚你想怎么查询,你的表字段有没有时间?如果有时间可以将where的条件改成你的字段名字如果没有时间你可以这样

select * from 表名

where year(date)='2011'

from user表 a

left join 消费表 b on a.username=b.username

// left join是左关联,关键字会从左表那里返回所有的行,即使在右表中没有匹配的行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6127916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存