thinkphp中如何查询当天,本周的,本月的,本年的数据,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp中如何查询当天,本周的,本月的,本年的数据,相关的知识,希望对你有一定的参考价值。

参考技术A //当天时间
$where['time'] = array(
    array('egt',strtotime(date('Y-m-d',time())),
    array('lt',strtotime(date('Y-m-d',time())).'+1 day')
);
// 本周时间
$where['time'] = array(
    array('egt',strtotime(date('Y-m-d',time())).'-'.date('w',time()).' day'),
    array('lt',strtotime(date('Y-m-d',time())).'+1 week -'.date('w',time()).' day');
);
// 本月时间
$where['time'] = array(
    array('egt',strtotime(date('Y-m',time()))),
    array('lt',strtotime(date('Y-m',time()).'+1 month'))
);
// 本年时间
$where['time'] = array(
    array('egt',strtotime(date('Y',time()))),
    array('lt',strtotime(date('Y',time()).'+1 year'))
);
上面是查询条件,直接运用到查询语句就可以了
$result = $db->where($where)->select();

更正下上面的那个 本年 查询时间
$where['time'] = array(
    array('egt',strtotime(date('Y-01-01',time())),
    array('lt',strtotime(date('Y-01-01',time()).'+1 year'))
);

mysql 查询当天本周,本月,上一个月的数据

今天

select * from 表名 where to_days(时间字段名) = to_days(now());

昨天

SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1

近7天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)

近30天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)

本月

SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, %Y%m ) = DATE_FORMAT( CURDATE( ) , %Y%m )

上一月

SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , %Y%m ) , date_format( 时间字段名, %Y%m ) ) =1

查询本季度数据

select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now());

查询上季度数据

select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

查询本年数据

select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());

查询上年数据

select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));

查询当前这周的数据

SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,%Y-%m-%d)) = YEARWEEK(now());

查询上周的数据

SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,%Y-%m-%d)) = YEARWEEK(now())-1;

查询上个月的数据

select name,submittime from enterprise where date_format(submittime,%Y-%m)=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),%Y-%m)

select * from user where DATE_FORMAT(pudate,%Y%m) = DATE_FORMAT(CURDATE(),%Y%m) ; 

select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,%y-%m-%d)) = WEEKOFYEAR(now()) 

select * from user where MONTH(FROM_UNIXTIME(pudate,%y-%m-%d)) = MONTH(now()) 

select * from user where YEAR(FROM_UNIXTIME(pudate,%y-%m-%d)) = YEAR(now()) and MONTH(FROM_UNIXTIME(pudate,%y-%m-%d)) = MONTH(now()) 
select * from user where pudate between 上月最后一天 and 下月第一天

查询当前月份的数据 

select name,submittime from enterprise   where date_format(submittime,%Y-%m)=date_format(now(),%Y-%m)

查询距离当前现在6个月的数据

select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();

 

以上是关于thinkphp中如何查询当天,本周的,本月的,本年的数据,的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server中查询当天,最近三天,本周,本月,最近一个月,本季度的数据的sql语句

Sql 查询当天本周本月记录

MS SQL Server查询 本日本周本月本季度本年起始时间

查询当天本周本月记录

mySql 查询当天本周最近7天本月最近30天的语句

MySQL 查询当天本周,本月上一个月的数据