MySQL中查詢年、季度、月、周、天等數據的SQL


表名為log表,時間字段為AddTime 

1、查詢當天的數據

SELECT
	* 
FROM
	log 
WHERE
	TO_DAYS( AddTime ) = TO_DAYS(
	NOW());

2、查詢本周數據(上周日到本周六)

SELECT
	* 
FROM
	log 
WHERE
	YEARWEEK(
		DATE_FORMAT( AddTime, '%Y-%m-%d' )) = YEARWEEK(
	NOW());

3、 查詢近7天的數據,不包括當天

SELECT
	* 
FROM
	log 
WHERE
	TO_DAYS ( NOW( ) ) - TO_DAYS( AddTime ) <= '7' AND TO_DAYS ( NOW( ) ) - TO_DAYS( AddTime ) > 0;

4、 查詢上周的數據

SELECT
	* 
FROM
	log 
WHERE
	YEARWEEK(
		date_format( AddTime, '%Y-%m-%d' )) = YEARWEEK(
	now())- 1;
-- 或
SELECT
	* 
FROM
	log 
WHERE
	date_format( AddTime, '%Y-%m' )= date_format( DATE_SUB( curdate(), INTERVAL 1 WEEK ), '%Y-%m' );

5、查詢本月的數據

SELECT
	* 
FROM
	log 
WHERE
	DATE_FORMAT( AddTime, '%Y%m' ) = DATE_FORMAT( CURDATE(), '%Y%m' );

6、查詢上個月的數據

SELECT
	* 
FROM
	log 
WHERE
	date_format( AddTime, '%Y-%m' )= date_format( DATE_SUB( curdate(), INTERVAL 1 MONTH ), '%Y-%m' );

7、查詢近30天的數據

SELECT
	* 
FROM
	log 
WHERE
	DATE_SUB( CURDATE(), INTERVAL 30 DAY ) <= DATE( AddTime );

8、查詢本季度的數據

SELECT
	* 
FROM
	log 
WHERE
	QUARTER ( AddTime ) = QUARTER (
	NOW());

9、查詢上季度的數據

SELECT
	* 
FROM
	log 
WHERE
	QUARTER ( AddTime ) = QUARTER (
	DATE_SUB( NOW(), INTERVAL 1 QUARTER ));

10、查詢距現在6個月的數據

SELECT
	* 
FROM
	log 
WHERE
	AddTime BETWEEN DATE_SUB( NOW(), INTERVAL 6 MONTH ) 
	AND NOW();

11、查詢本年的數據

SELECT
	* 
FROM
	log 
WHERE
	YEAR ( AddTime ) = YEAR (
	NOW());

12、查詢上年的數據

SELECT
  * 
FROM
  log 
WHERE
  YEAR ( AddTime ) = YEAR (
  DATE_SUB( NOW(), INTERVAL 1 YEAR ));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM