mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

1.获取上个月第一天及最后一天.
   echo date('Y-m-01', strtotime('-1 month'));
   echo "<br/>";
   echo date('Y-m-t', strtotime('-1 month'));
   echo "<br/>";

   上面的方法有些问题,根据bg5hfc回复做下修改

 上个月第一天:
 echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month')); // 计算出本月第一天再减一个月
 上个月最后一天:
 echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 计算出本月第一天再减一天
2.获取当月第一天及最后一天.
   $BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
   echo $BeginDate;
   echo "<br/>";
   echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));
   echo "<br/>";
3.获取当天年份、月份、日及天数.
   echo " 本月共有:".date("t")."天";
   echo " 当前年份".date('Y');
   echo " 当前月份".date('m');
   echo " 当前几号".date('d');
   echo "<br/>";
4.使用函数及数组来获取当月第一天及最后一天,比较实用
   function getthemonth($date)
   {
   $firstday = date('Y-m-01', strtotime($date));
   $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
   return array($firstday,$lastday);
   }
   $today = date("Y-m-d");
   $day=getthemonth($today);
   echo "当月的第一天: ".$day[0]." 当月的最后一天: ".$day[1];
   echo "<br/>";

 

 

存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下

select id,title,add_time from `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d');

select * from `article` where to_days(date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d')) = to_days(now());

查询今天的信息记录

select * from `article` where to_days(`add_time`) = to_days(now());

查询昨天的信息记录

select * from `article` where to_days(now()) – to_days(`add_time`) <= 1;

查询近7天的信息记录

select * from `article` where date_sub(curdate(), INTERVAL 7 DAY) <= date(`add_time`);

查询近30天的信息记录:

select * from `article` where date_sub(curdate(), INTERVAL 30 DAY) <= date(`add_time`);

查询本月的信息记录

select * from `article` where date_format(`add_time`, ‘%Y%m') = date_format(curdate() , ‘%Y%m');

查询上一月的信息记录

select * from `article` where period_diff(date_format(now() , ‘%Y%m') , date_format(`add_time`, ‘%Y%m')) =1;

posted @ 2017-07-06 23:01  玲汐  阅读(280)  评论(0)    收藏  举报