MySQL语句查询近年、月、日、小时的数据
数据库表结构如图:
表数据如下:
#近多少(7)天的数据(按日来算,不算小时分) #SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名) SELECT * FROM `test` WHERE DATE_SUB(CURDATE(), INTERVAL 3 DAY) <= DATE(ntime) #本月数据 #SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' ) SELECT * FROM `test` WHERE DATE_FORMAT( ntime, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' ) #当天的数据 #SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW()) SELECT * FROM test WHERE TO_DAYS(ntime) = TO_DAYS(NOW()) #查询几(十)小时前数据 #SELECT * FROM 表名 WHERE 时间字段名>DATE_ADD(NOW(),INTERVAL-10 HOUR) SELECT * FROM test WHERE nTime>DATE_ADD(NOW(),INTERVAL-10 HOUR) #查询上几(二)月数据,0代表本季度,1代表上一季度 #SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =2 SELECT * FROM `test` WHERE PERIOD_DIFF( DATE_FORMAT( NOW( ) , '%Y%m' ) , DATE_FORMAT( ntime, '%Y%m' ) ) =0 #查询上(几)季度数据`waterregion``log_watermeter`,0代表本季度,1代表上一季度 #SELECT * FROM 表名 WHERE QUARTER(时间字段名)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER)) SELECT * FROM `test` WHERE QUARTER(ntime)=QUARTER(DATE_SUB(NOW(),INTERVAL 0 QUARTER)) #查询上(几)年度数据,0代表本年度,1代表上一年度 #SELECT * FROM 表名 WHERE YEAR(时间字段名)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR)) SELECT * FROM `test` WHERE YEAR(ntime)=YEAR(DATE_SUB(NOW(),INTERVAL 2 YEAR)) #返回 date 是一年中的第几天,范围为 1 到 366 #DAYOFYEAR(date) SELECT DAYOFYEAR('2019-03-25 10:45:03') #返回 date 的年份,范围为 1000 到 9999 #YEAR(date) SELECT YEAR('2019-03-25 10:45:03') #返回 date 中的月份,范围为 1 到 12 #MONTH(date) SELECT MONTH('2019-03-25 10:45:03') #返回 date 是一月中的第几天,范围为 1 到 31 #DAYOFMONTH(date) SELECT DAYOFMONTH('2019-03-25 10:45:03') #返回 time 的小时值,范围为 0 到 23: #HOUR(time) SELECT HOUR('2019-03-25 10:45:03'); #返回 time 的分钟值,范围为 0 到 59: #MINUTE(time) SELECT MINUTE('2019-03-25 10:45:03'); #返回 time 的秒值,范围为 0 到 59: #SECOND(time) SELECT SECOND('2019-03-25 10:45:03');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步