mysql time 範圍 Mysql時間範圍相關

2021-10-18 09:51:54 字數 4576 閱讀 3750

mysql時間範圍相關

mysql to_days函式

to_days函式:返回從2023年(公元1年)至當前日期的總天數。

1,查詢當天(今天)的資料

select * from `order` where to_days(order_time) = to_days(now())

2,查詢昨天的資料

select * from `order` where to_days(now()) - to_days(order_time) =

3,查詢最近7天的資料(包括今天一共7天)

select * from `order` where date_sub(curdate(), interval 7 day) < date(order_time)

4,查詢最近30天的資料(包括今天一共30天)

select * from `order` where date_sub(curdate(), interval 30 day) < date(order_time)

5,查詢當月(本月)的資料

select * from `order` where date_format(order_time, '%y%m') = date_format(curdate(), '%y%m')

6,查詢上個月的資料

select * from `order` where period_diff(date_format(now(),'%y%m'), date_format(order_time,'%y%m')) =

7,查詢本季度的資料

select * from `order` where quarter(order_time)=quarter(now())

8,查詢上季度的資料

select * from `order` where quarter(order_time)=quarter(date_sub(now(),interval  quarter))

9,查詢當年(今年)的資料

select * from `order` where year(order_time)=year(now())

10,查詢去年的資料

select * from `order` where year(order_time)=year(date_sub(now(),interval  year))

1.7天

select * from 表名 where date_sub(curdate(), interval 7 day) <= date(時間欄位名)

2.近30天

select * from 表名 where date_sub(curdate(), interval 30 day) <= date(時間欄位名)

3.本月

select * from 表名 where date_format( 時間欄位名, 『%y%m' ) = date_format( curdate( ) , 『%y%m' )

4.上一月

select * from 表名 where period_diff( date_format( now( ) , 『%y%m' ) , date_format( 時間欄位名, 『%y%m' ) ) =1

#查詢本季度資料

select * from `ht_invoice_information` where quarter(create_date)=quarter(now());

#查詢上季度資料

select * from `ht_invoice_information` where quarter(create_date)=quarter(date_sub(now(),interval 1 quarter));

#查詢本年資料

select * from `ht_invoice_information` where year(create_date)=year(now());

#查詢上年資料

select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));

查詢當前這週的資料

select name,submittime from enterprise where yearweek(date_format(submittime,'%y-%m-%d')) = yearweek(now());

查詢上週的資料

select name,submittime from enterprise where yearweek(date_format(submittime,'%y-%m-%d')) = yearweek(now())-1;

查詢當前月份的資料

select name,submittime from enterprise where date_format(submittime,'%y-%m')=date_format(now(),'%y-%m')

查詢距離當前現在6個月的資料

select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();

查詢上個月的資料

select name,submittime from enterprise where date_format(submittime,'%y-%m')=date_format(date_sub(curdate(), interval 1 month),'%y-%m')

select * from ` user ` where date_format(pudate, 『 %y%m 『 ) = date_format(curdate(), 『 %y%m 『 ) ;

select * from user where weekofyear(from_unixtime(pudate,'%y-%m-%d')) = weekofyear(now())

select *

from user

where month (from_unixtime(pudate, 『 %y-%m-%d 『 )) = month (now())

select *

from [ user ]

where year (from_unixtime(pudate, 『 %y-%m-%d 『 )) = year (now())

and month (from_unixtime(pudate, 『 %y-%m-%d 『 )) = month (now())

select *

from [ user ]

where pudate between 上月最後一天

and 下月第一天

where date(regdate) = curdate();

select * from test where year(regdate)=year(now()) and month(regdate)=month(now()) and day(regdate)=day(now())

select date( c_instime ) ,curdate( )

from `t_score`

where 1

1、between and語句;

2、datediff函式;

3、timestampdiff函式;

下面就具體說明下這三種方式:

第一種: between and語句

select * from dat_document where commit_date between '2018-07-01' and '2018-07-04'

結果是1號到3號的資料,這是因為時間範圍顯示的實際上只是『2018-07-01 00:00:00』到'2018-07-04 00:00:00'之間的資料,而'2018-07-04'的資料就無法顯示出來,between and對邊界還需要進行額外的處理.

第二種: datediff函式

datediff函式返回兩個日期之間的天數

語法:datediff(date1,date2)

select datediff('2018-07-01','2018-07-04');

執行結果:-3

所以,datediff函式對時間差值的計算方式為date1-date2的差值。

第三種: timestampdiff函式

timestampdiff函式日期或日期時間表示式之間的整數差。

語法:timestampdiff(interval,datetime1,datetime2),比較的單位interval可以為以下數值

frac_second。表示間隔是毫秒

second。秒

minute。分鐘

hour。小時

day。天

week。星期

month。月

quarter。季度

year。年

select timestampdiff(day,'2018-07-01 09:00:00','2018-07-04 12:00:00');

執行結果:3

所以,timestampdiff函式對日期差值的計算方式為datetime2-datetime1的差值。

請注意:datediff,timestampdiff對日期差值的計算方式剛好是相反的。

mysql time型別資料 MySQL資料型別

mysql中定義資料欄位的型別對你資料庫的優化是非常重要的 mysql支援多種型別,大致可以分為三類 數值 日期 時間和字串 字元 型別 整數型別 int n 中n的涵義 定義了 init 5 zerofill 當和int 10 join時顯示寬度對不上有可能出現臨時表 n表示顯示寬度為n,但仍佔4...

mysql time 操作 MySql 日期操作

1 獲取日期的函式 select now 獲取當前日期與時間 同義詞 localtime localtimestamp current timestamp select curdate 獲取當前日期 select sysdate 動態獲取當前日期與時間 select curtime 獲取當前時間 2...

mysq比較時間

在oracle中使用時間函式to date習慣了,在oracle中時間的加減也非常簡單,直接加減即可。在mysql中時間的函式很多,非常自由。在專案中經常用到的就是時間的加減。比如60天前,oracle中直接就是sysdate 60,mysql中就不行。對時間加減的函式是 加adddate 減sub...