MySQL查询日期型数值常用SQL

版权声明: https://blog.csdn.net/shijianzhihu/article/details/79932234
  • 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(DATE_FORMAT(update_time,'%Y%m%d'),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


  • 查询上个月新增的记录;
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());

  • 查询上一季度新增的数据
SELECT * FROM  test  WHERE QUARTER(add_time)=QUARTER(DATE_SUB(now(),INTERVAL 1 QUARTER)) AND YEAR(add_time)=YEAR(NOW());

持续完善中…..

猜你喜欢

转载自blog.csdn.net/shijianzhihu/article/details/79932234
今日推荐