--創(chuàng)建字段默認當前時間(修改使用MODFY)
? ? ? ALTER TABLE `table_name` ADD `CreateTime` DATETIME NOT NULL DEFAULT?CURRENT_TIMESTAMP;
--添加字段默認當前更新時間
? ? ? ALTER TABLE `table_name` ADD? `UpdateTime` TIMESTAMP? NOT NULL DEFAULT?CURRENT_TIMESTAMP?ON UPDATE CURRENT_TIMESTAMP?;
--查詢當前表中前天的數(shù)據(jù)
SELECT * FROM tbl_name WHERE TO_DAYS(NOW())-TO_DAYS(createTime)<=2 AND?TO_DAYS(NOW())-TO_DAYS(createTime)>1;?
1. NOW()=CURDATE()+CURTIME();
2. DATE()函數(shù)返回日期或日期/時間表達式的日期部分。
語法:DATE(date):date?參數(shù)是合法的日期表達式或字段名。
3.?DATE_FORMAT() 函數(shù)用于以不同的格式顯示日期/時間數(shù)據(jù)。
語法:DATE_FORMAT(date,format)
當天:DATE_FORM(CURDETE(),'%Y-%M-%d %H:%i:%S');
4. DATE_SUB()函數(shù)從日期減去指定的時間間隔。
語法:DATE_SUB(date,INTERVAL expr type):
date?參數(shù)是合法的日期表達式。expr?參數(shù)是您希望添加的時間間隔。注意:type可以復合型的,比如 YEAR_MONTH。如果type不是復合型的,DATE_ADD和DATE_SUB其實可以通用,因為expr可以為一個負數(shù)
當月:DATE_FORM(DATE_SUB(CURDATE(),INTERVAL 0 MONTH),'%Y-%M-%d');
例子1:SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 2 DAY)AS OrderPayDate FROM Orders;//給某個字段減去兩天顯示
例子2:SELECT?DATE_ADD('2013-01-18',INTERVAL '1 2' YEAR_MONTH);
//結果:2014-03-18;當expr只有一個值,會給MONTH使用
5.?EXTRACT() 函數(shù)用于返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。
語法:EXTRACT(unit FROM date):date?參數(shù)是合法的日期表達式。unit?參數(shù)可以是下列的值:SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR;
6.?DATEDIFF() 函數(shù)返回兩個日期之間的天數(shù)。
語法:DATEDIFF(date1,date2):date1?和?date2?參數(shù)是合法的日期或日期/時間表達式。
注釋:只有值的日期部分參與計算。date1?-date2?,返回可以為負。
7.YEAR(date) ,返回date的年份,范圍在1000到9999。
QUARTER(date) ,返回date一年中的季度,范圍1到4。
MONTH(date) ,返回date的月份,范圍1到12。
WEEK(date,first) :返回date的周數(shù),范圍在0到52。first=0,星期從星期天開始,first=1, 從星期一開始。
? ? ? ? ?例子:SELECT WEEK('2017-11-05');//45(11.05是周日,算新的一周)? ? ?
? ? ? ? ? ? ? ? ? ? SELCT WEEK('2017-11-05',1);//44
HOUR(time) ,返回time的小時,范圍是0到23。
MINUTE(time) ,返回time的分鐘,范圍是0到59。
SECOND(time) ,回來time的秒數(shù),范圍是0到59。
8. DAYOFWEEK(date) ,返回日期date的星期索引(1=星期天, ……7=星期六)。
? ? WEEKDAY(date) ,返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
DAYOFMONTH(date) ,返回date的月份中日期,在1到31范圍內(nèi)。
DAYOFYEAR(date) ,返回date在一年中的日數(shù), 在1到366范圍內(nèi)
9.?PERIOD_ADD(P,N) ,增加N個月到階段P(以格式YYMM或YYYYMM),以格式YYYYMM返回值。
? ?PERIOD_DIFF(P1,P2) ,返回在時期P1和P2之間月數(shù),P1和P2應該以格式YYMM或YYYYMM。注意,時期參數(shù)P1和P2不是日期值。
? ? ? ? ? ? ? ? ? ? 例子:SELECT PERIOD_ADD('201711',2);//201801
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SELECT PERIOD_DIFF('201711','201702');//9
10.?to_days函數(shù):返回從0000年(公元1年)至當前日期的總天數(shù)
如果要查詢當前表中昨天的數(shù)據(jù)那么
SELECT * FROM tbl_name WHERE TO_DAYS(NOW())-TO_DAYS(createTime)<=1;
前天的?那就是
SELECT * FROM tbl_name WHERE TO_DAYS(NOW())-TO_DAYS(createTime)<=2 AND?TO_DAYS(NOW())-TO_DAYS(createTime)>1;?
轉載自https://www.cnblogs.com/goloving/p/7779040.html
https://blog.csdn.net/sinat_19569023/article/details/50417273
https://www.cnblogs.com/lhj588/p/4245719.html