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...