mysql 查詢近一個月內某段時間的記錄

#mysql關於查詢時間的語法

 

#獲取當前日期和時間的函數。2020-05-08 16:42:36

select NOW();

 

#獲取當前的日期 2020-05-08

select CURDATE();

 

#獲取當前時間 16:42:23

SELECT CURTIME();

 

# 2020-05-08

SELECT DATE(now()) from now();

SELECT DATE(create_time) from 表名 limit 1;

 

#獲取返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。

select EXTRACT(YEAR_MONTH FROM now()) ;

SELECT EXTRACT(YEAR_MONTH from create_time) from 表名 limit 1;

 

#DATE_ADD將日期添加指定的時間間隔。 2020-05-09 16:57:24

select DATE_ADD(now(),INTERVAL 1 DAY) ;

 

#DATE_SUB 將日期減去指定的時間間隔。 2020-05-07 16:58:02

select DATE_SUB(now(),INTERVAL 1 DAY) ;

 

#DATEDIFF 獲取兩個日期之間的天數。(只有日期部分參與計算

SELECT DATEDIFF(NOW(),'2020-04-08')

 

#DATEFORMAT 格式化日期時間 2020-05-08

SELECT DATE_FORMAT(now(),'%Y-%m-%d')

 

 

#1,查詢今天的繪本

 

select create_time from 表名 where TO_DAYS(NOW())=TO_DAYS(create_time);

select create_time from 表名 where DATE_FORMAT(CURDATE(),'%Y-%m-%d')=DATE_FORMAT(create_time,'%Y-%m-%d')

 

#2,昨天

select create_time from 表名 where TO_DAYS(NOW())-1=TO_DAYS(create_time);

 

#3,昨天以後的數據

select create_time from 表名  where TO_DAYS(NOW())-TO_DAYS(create_time)<=1;

 

#4,近7天

select create_time from 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(create_time);

 

#5,最近一個月

select create_time from 表名 where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(create_time);

 

#最近一個月,下午1點到2點的繪本出現top10次數

select * from 表名 where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(create_time) and DATE_FORMAT(create_time,'%H-%i-%s')>='12:00:00' and DATE_FORMAT(create_time,'%H-%i-%s')<='13:00:00' GROUP BY book_id ORDER BY count(book_id) desc ;

 

#近30天

select create_time from 表名 where DATE_SUB(CURDATE(),INTERVAL 30 DAY)<=DATE(create_time);

 

#本月

select create_time from 表名 where MONTH(create_time)=MONTH(CURDATE());

select create_time from 表名 where DATE_FORMAT(CURDATE(),'%m')=DATE_FORMAT(create_time,'%m')

 

#上一月

select create_time from 表名 where MONTH(create_time)=MONTH(CURDATE())-1;

select create_time from 表名 where DATE_FORMAT(CURDATE(), '%Y%m')-1=DATE_FORMAT(create_time,'%Y%m')

SELECT create_time FROM 表名 WHERE PERIOD_DIFF(DATE_FORMAT(CURDATE( ),'%Y%m' ),DATE_FORMAT(create_time,'%Y%m' )) =1;

 

#查詢本季度數據

select create_time from 表名 where QUARTER(create_time)=QUARTER(CURDATE());

 

#查詢上季度數據

select create_time from 表名 where QUARTER(create_time)=QUARTER(CURDATE())-1;

select create_time from 表名 where QUARTER(create_time)=QUARTER(date_sub(CURDATE(),INTERVAL 1 quarter));

#查詢本年數據

select create_time from 表名 where YEAR(create_time)=YEAR(CURDATE());

#查詢上年數據

select create_time from 表名 where YEAR(create_time)=YEAR(CURDATE())-1;

select create_time from 表名 where YEAR(create_time)=YEAR(date_sub(CURDATE(),INTERVAL 1 YEAR));

#查詢當前這周的數據

select create_time from 表名 where WEEK(create_time)=WEEK(CURDATE());

#查詢上週的數據

select create_time from 表名 where WEEK(create_time)=WEEK(CURDATE())-1;

select create_time from 表名 where WEEK(create_time)=WEEK(date_sub(CURDATE(),INTERVAL 1 WEEK));

 

 

%a:縮寫星期名

 

%b:縮寫月名

 

%c:月,數值

 

%D:帶有英文前綴的月中的天

 

%d:月的天,數值(00-31)

 

%e:月的天,數值(0-31)

 

%f:微秒

 

%H:小時 (00-23)

 

%h:小時 (01-12)

 

%I:小時 (01-12)

 

%i:分鐘,數值(00-59)

 

%j:年的天 (001-366)

 

%k:小時 (0-23)

 

%l:小時 (1-12)

 

%M:月名

 

%m:月,數值(00-12)

 

%p:AM 或 PM

 

%r:時間,12-小時(hh:mm:ss AM 或 PM)

 

%S:秒(00-59)

 

%s:秒(00-59)

 

%T:時間, 24-小時 (hh:mm:ss)

 

%U:周 (00-53) 星期日是一週的第一天

 

%u:周 (00-53) 星期一是一週的第一天

 

%V:周 (01-53) 星期日是一週的第一天,與 %X 使用

 

%v:周 (01-53) 星期一是一週的第一天,與 %x 使用

 

%W:星期名

 

%w:周的天 (0=星期日, 6=星期六)

 

%X:年,其中的星期日是周的第一天,4 位,與 %V 使用

 

%x:年,其中的星期一是周的第一天,4 位,與 %v 使用

 

%Y:年,4 位

 

%y:年,2 位

 

 

時間間隔

MICROSECOND、

SECOND、MINUTE、

HOUR、DAY、WEEK、MONTH、

QUARTER、YEAR、SECOND_MICROSECOND、

MINUTE_MICROSECOND、MINUTE_SECOND、

HOUR_MICROSECOND、HOUR_SECOND、

HOUR_MINUTE、DAY_MICROSECOND、

DAY_SECOND、DAY_MINUTE、

DAY_HOUR、YEAR_MONTH

 

 

 

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