MYSQL查询时间段数据


一、函数简介

DATE_FORMAT()
函数用于以不同的格式显示日期/时间数据。
CURDATE()
函数返回当前的日期。
TO_DAYS(date)
给定的日期,返回一个天数(以0年以来的天数)。
NOW()
函数返回当前系统的日期和时间。
YEARWEEK(date), YEARWEEK(date,mode)
返回年份和星期的日期。mode参数的工作原理与使用mode参数WEEK()完全一样。年在结果可能是从date参数为第一和年的最后一周,在年有所不同。
PERIOD_DIFF(P1,P2)
返回周期P1和P2之间的月数。P1和P2为YYYYMM或YYYYMM格式。 注意该周期参数P1和P2都不日期值。
DATE_SUB()
函数从日期减去指定的时间间隔。

二、SQL语句

  • 今天

SELECT * FROM 表名 WHERE TO_DAYS(字段名) = TO_DAYS(NOW())

  • 昨天

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

  • 本周

SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(字段名,’%Y-%m-%d’)) = YEARWEEK(now())

  • 上一周

SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(字段名,’%Y-%m-%d’)) = YEARWEEK(now())-1

  • 本月

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

  • 上一个月

SELECT * SELECT 表名 WHERE PERIOD_DIFF(DATE_FORMAT(now(),’%Y%m’),DATE_FORMAT(字段名,’%Y%m’) =1

  • 本季度

SELECT * SELECT 表名 WHERE QUARTER(字段名)=QUARTER(NOW());

  • 上一季度

SELECT * SELECT 表名 WHERE QUARTER(字段名)=QUARTER(DATE_SUB(NOW(),interval 1 QUARTER));

  • 本年

SELECT * FROM 表名 WHERE YEAR(字段名)=YEAR(NOW());

  • 上一年

SELECT * FROM 表名 WHERE YEAR(字段名)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR));

总结

工作随笔,希望可以帮助到大家!

参考链接

函数参考:https://www.w3cschool.cn/mysql/

猜你喜欢

转载自blog.csdn.net/black_lightning/article/details/111600334