mysql 查詢今天,昨天,本月,今年,本季度,上一年等的sql語句編寫(全)

-- 今天

SELECT 【想要的字段】 FROM 【表名】 WHERETO_DAYS(【時間字段名】) =TO_DAYS(now());

-- 昨天

SELECT 【想要的字段】 FROM 【表名】 WHERE TO_DAYS( NOW( ) ) - TO_DAYS(【時間字段名】) = 1;

-- 近七天

SELECT 【想要的字段】 FROM 【表名】 WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <=DATE(【時間字段名】);

-- 本週內

SELECT 【想要的字段】 FROM 【表名】 WHERE YEARWEEK(DATE_FORMAT(【時間字段名】,'%Y-%m-%d')) = YEARWEEK(now());

-- 上一週

SELECT 【想要的字段】 FROM 【表名】 WHERE YEARWEEK(DATE_FORMAT(【時間字段名】,'%Y-%m-%d')) = YEARWEEK(now())-1;

-- 30天內 注意這個不是本月是從當天起向前推30天

SELECT 【想要的字段】 FROM 【表名】 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <=DATE(【時間字段名】);

-- 本月

SELECT 【想要的字段】 FROM 【表名】 WHERE DATE_FORMAT( 【時間字段名】, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );

-- 上一個月

SELECT 【想要的字段】 FROM 【表名】 WHERE PERIOD_DIFF( DATE_FORMAT( now( ) , '%Y%m' ) , DATE_FORMAT( 【時間字段名】, '%Y%m' ) ) =1;

-- 本季度

SELECT 【想要的字段】 FROM 【表名】 WHERE QUARTER(【時間字段名】)=QUARTER(now());

-- 上一季度

SELECT 【想要的字段】 FROM 【表名】 WHERE QUARTER(【時間字段名】)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

-- 本年度

SELECT 【想要的字段】 FROM 【表名】 WHERE YEAR(【時間字段名】)=YEAR(NOW());

-- 上一年度

SELECT 【想要的字段】 FROM 【表名】 WHEREYEAR(【時間字段名】)=YEAR(date_sub(now(),interval 1YEAR));

下面是mysql的函數說明:

TO_DAYS() 將日期參數返回轉換爲天,給定一個日期date,返回一個日期號碼(自0年以來的天數)。
NOW() 函數返回當前的日期和時間。
CURDATE() 函數返回當前的日期,是日期不是時間
DATE_SUB(current,INTERVAL 【N】 DAY) 將current向前推 N天
DATE_ADD(current,INTERVAL 【N】 DAY) 將current向後推 N天
YEARWEEK 是獲取年份和週數的一個函數,函數形式爲 YEARWEEK(date[,mode])
DATE_FORMAT( article_last_update, '%Y%m' ) 按照格式 格式化時間字符串
QUARTER(date) 返回日期的一年中的季度,範圍爲1到4。
YEAR(date) 返回日期的年份,範圍爲1000到9999,或者對於“零”日期返回0。
MONTH(date) 返回日期的月份,1月至12月的範圍爲1至12,對於包含月份爲零的日期(如“0000-00-00”或“2008-00-00”),返回0。
WEEK(date[,mode]) 此函數返回日期的周號。 WEEK()的雙參數使您能夠指定星期是從星期天還是星期一開始,以及返回值是在0到53還是從1到53的範圍內。如果省略mode參數,則值 使用了default_week_format系統變量。

 

轉載至:https://www.geticsen.cn/Index/article/content/161.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章