1.MySQL 获得当前日期/时间函数:
TO_DAYS()函数返回的一个天数,这个天数等于从epoch到给定日期的天数;
- 查询今天新增的记录
# 字段名不需要加引号;
SELECT * FROM test WHERE TO_DAYS(add_time) = TO_DAYS(NOW());
- 查询昨天新增的记录
SELECT * FROM test WHERE TO_DAYS(NOW())-TO_DAYS(add_time) = 1;
- 查询近7天新增的记录;
# 这里的近七天包含今天
SELECT * FROM test WHERE DATE_SUB(CURDATE(), INTERVAL 6 DAY) <=DATE(add_time)
DATE_SUB() 函数用来从给定日期减去给定的时间间隔。语法:
DATE_SUB(date,INTERVAL expr type)
date
参数是合法的日期表达式;
expr
参数是您希望添加的时间间隔。
type
可以取SECOND/MINUTE/HOUR/DAY/WEEK/MONTH/QUARTER/YEAR等等
与DATE_SUB()对应的函数是DATE_ADD()函数,用来从给定日期加上给定的时间间隔。
这里的给定的时间间隔除了天,还可以是其他所有DATE_SUB()函数支持的类型。
- 查询本周(自然周)修改的记录
SELECT * FROM test WHERE YEARWEEK(update_time,1) = YEARWEEK(now());
YEARWEEK() 是获取年份和周数的一个函数,函数语法为
YEARWEEK(date[,mode])
;参数mode
可选。
默认情况下,是把周日,作为一周的开始。而mode
则用来指定‘First day of week’ 以及用什么样的逻辑,来计算一年中的第一周。详见此文
- 查询本月新增的记录
SELECT * FROM test WHERE DATE_FORMAT( add_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法:DATE_FORMAT(date,format)
;date 参数是合法的日期。format 规定日期/时间的输出格式。
这里要注意的是。format
中大小写敏感,详见w3cshcool
7.查询上个月新增的记录;
SELECT * FROM test WHERE PERIOD_DIFF(date_format(NOW( ) , '%Y%m' ) , DATE_FORMAT(add_time, '%Y%m' ) ) =1
- 查询本季度新增的数据(第一季度为1-3月)
#如果是查询本年,需要加上YEAR()条件;
SELECT * from test WHERE QUARTER(add_time)=QUARTER(now()) AND YEAR(add_time)=YEAR(NOW());
9.查询上一季度新增的数据
SELECT * FROM test WHERE QUARTER(add_time)=QUARTER(DATE_SUB(now(),INTERVAL 1 QUARTER)) AND YEAR(add_time)=YEAR(NOW());
持续完善中.....