MySQL查詢時間基礎教程

也許在開發(fā)的時候我們會頭疼需要統(tǒng)計各種報表數(shù)據(jù),mysql語句寫的都是超長超復雜的,那么總有解決的辦法,現(xiàn)在小編就給大家分享一些比較基礎的sql關于時間方面的統(tǒng)計知識。

現(xiàn)在假設有這樣一張訂單數(shù)據(jù)表:

CREATE?TABLE?`order`?(????  ?`id`?int(11)?unsigned?NOT?NULL?AUTO_INCREMENT,????  `order_sn`?varchar(50)?CHARACTER?SET?utf8?NOT?NULL?DEFAULT?''?COMMENT?'訂單編號,保證唯一',????  `create_at`?int(11)?NOT?NULL?DEFAULT?'0'?COMMENT?'創(chuàng)建時間',????  ?`success_at`?int(11)?NOT?NULL?DEFAULT?'0'?COMMENT?'訂單完成時間',????  ?`creator_id`?varchar(50)?CHARACTER?SET?utf8?NOT?NULL?DEFAULT?''?COMMENT?'訂單創(chuàng)建人',????  PRIMARY?KEY?(`id`),????  UNIQUE?KEY?`uni_sn`?(`order_sn`),????  ?)?ENGINE=InnoDB?AUTO_INCREMENT=1?DEFAULT?CHARSET=utf8mb4?COLLATE=utf8mb4_unicode_ci?COMMENT='訂單表';

現(xiàn)在以如上表為例查詢相關的數(shù)據(jù):

查詢今天所有已完成的訂單編號:?

SELECT?`order_sn`?FROM?`order`?WHERE?YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d'))?=?date_format(now(),'%Y-%m-%d');

查詢當前這周所有已完成的訂單編號:?

SELECT?`order_sn`?FROM?`order`?WHERE?YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d'))?=?YEARWEEK(now());

查詢上周所有已完成的訂單編號:

SELECT?`order_sn`?FROM?`order`?WHERE?YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d'))?=?YEARWEEK(now())-1;

查詢當前月份所有已完成的訂單編號:

select?`order_sn`?from?`order`?where?FROM_UNIXTIME(success_at,'%Y-%m')=date_format(now(),'%Y-%m');

查詢上個月份所有已完成的訂單編號:

select?`order_sn`?from?`order`?where?FROM_UNIXTIME(success_at,'%Y-%m')=date_format(DATE_SUB(curdate(),?INTERVAL?1?month),'%Y-%m');

查詢距離當前現(xiàn)在6個月已完成的訂單編號:

select?`order_sn`?from?`order`?where?FROM_UNIXTIME(success_at,'%Y-%m-%d?%H:%i:%s')?between?date_sub(now(),interval?6?month)?and?now();

查詢本季度所有已完成的訂單編號:

select?`order_sn`?from?`order`?where?QUARTER(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=QUARTER(now());

查詢上季度所有已完成的訂單編號:

select?`order_sn`?from?`order`?where?QUARTER(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=QUARTER(DATE_SUB(now(),interval?1?QUARTER));

查詢本年所有已完成的訂單編號:

select?`order_sn`?from?`order`?where?YEAR(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=YEAR(NOW());

查詢上年所有已完成的訂單編號: ?

select?`order_sn`?from?`order`?where?year(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=year(date_sub(now(),interval?1?year));

以上內容就是mysql查詢報表時間的相關教程,希望對大家有幫助。

相關推薦:

MySQL查詢時間的相關知識

MySQL查詢時間的相關知識

MySQL查詢時間的相關知識

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享