MySQL以时间查找的语句

1.查询当天的所有数据
select * from 表名 where to_days(时间字段名称) = to_days(now());
select * from usertab where FROM_UNIXTIME(tabtime, '%Y%m%d') = 20171012;
或  select * from usertab where FROM_UNIXTIME(tabtime, '%Y-%m-%d') = 2017-10-12;

mysql TO_DAYS(date) 函数
TO_DAYS(date)
给定一个日期date, 返回一个天数 (从年份0开始的天数 )。
mysql> SELECT TO_DAYS(950501);



mysql查询今天、昨天、7天、近30天、本月、上一月 数据
今天
select * from 表名 where to_days(时间字段名) = to_days(now());
昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1
一周
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));

猜你喜欢

转载自blog.csdn.net/baidu_33512336/article/details/78208245