MySQL能對(duì)日期進(jìn)行處理嗎?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
成都創(chuàng)新互聯(lián)公司是一家以成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、成都網(wǎng)站營(yíng)銷、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為PVC花箱等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
mysql可以做日期處理;它可以利用CURDATE()、NOW()、YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()等內(nèi)置函數(shù)來做日期處理,例“SELECT CURDATE()”獲取當(dāng)前日期。
最近一個(gè)項(xiàng)目,需要寫很多的sql語(yǔ)句。涉及到很多與時(shí)間相關(guān)的處理,現(xiàn)在做一下簡(jiǎn)單的總結(jié)。
1.時(shí)間格式:在這個(gè)項(xiàng)目中,或許是由不同的人建立的數(shù)據(jù)庫(kù)表結(jié)構(gòu)吧,對(duì)時(shí)間的格式步統(tǒng)一,有的表中存儲(chǔ)的long類型的時(shí)間戳,有的表中是存儲(chǔ)的日期,有的表中存儲(chǔ)的是時(shí)間,同時(shí)格式有20171225,2017-12-25等,一點(diǎn)都不統(tǒng)一。這樣做,會(huì)對(duì)項(xiàng)目增加一些額外的工作量,同時(shí)會(huì)衍生出一些問題出來。比如,在寫后臺(tái)代碼時(shí),需要對(duì)時(shí)間做出處理,以適應(yīng)數(shù)據(jù)庫(kù)的時(shí)間格式;在進(jìn)行奪標(biāo)聯(lián)合查詢時(shí),時(shí)間格式不統(tǒng)一,又會(huì)對(duì)sql語(yǔ)句進(jìn)行時(shí)間格式轉(zhuǎn)換,造成sql語(yǔ)句臃腫的情況。所以,在同一個(gè)項(xiàng)目中,時(shí)間格式應(yīng)該保持統(tǒng)一。個(gè)人覺得long 類型的時(shí)間戳,以及String類型的yyyy-MM-dd HH:mm:ss 這兩種方式時(shí)比較不錯(cuò)的。
long類型的時(shí)間戳,是因?yàn)楹笈_(tái)java代碼將date類型的時(shí)間轉(zhuǎn)化為時(shí)間戳很容易。
String類型時(shí)因?yàn)?,我們假如?jīng)常使用時(shí)間這個(gè)字段,在應(yīng)用時(shí)不需要額外將Date類型轉(zhuǎn)化為String類型,使用起來比較直觀,方便。
2.常用時(shí)間語(yǔ)句
SELECT CURDATE():2020-10-7 //此時(shí)日期 SELECT NOW() : 2020-10-7 22:20:21 //此刻時(shí)間 SELECT YEAR('2020-10-7 22:27:45'): 2020 //獲取時(shí)間的年份 SELECT MONTH('2020-10-7 22:27:45'): 10 //獲取時(shí)間的月份 SELECT DAY('2020-10-7 22:27:45'):25 //獲取時(shí)間的天數(shù) SELECT HOUR('2020-10-7 22:27:45'):22 //獲取時(shí)間的小時(shí) SELECT MINUTE('2020-10-7 22:27:45'):27 //獲取時(shí)間的分鐘 SELECT SECOND('2020-10-7 22:27:45'):45 //獲取時(shí)間的秒數(shù)
SELECT DATE_SUB(NOW(),INTERVAL 1 YEAR) //在目前的時(shí)間減去一年,該語(yǔ)句可以進(jìn)行多種操作,指定時(shí)間下減去x年:DATE_SUB("2017-12-25",INTERVAL x YEAR),同時(shí)可以減去 x month/day/hour/minute/second等 SELECT DATE_ADD(NOW(),INTERVAL 1 YEAR) //同上,在目前的時(shí)間上加上一年 SELECT CONCAT('2017','-12-12'):2017-12-12 //組裝字符串,可以組裝成任何時(shí)間格式,也可以使用如上語(yǔ)句,例如:SELECT CONCAT(YEAR(NOW()),'-12-12') :2017-12-12 ; SELECT UNIX_TIMESTAMP('2017-12-25'):1514131200 //字符串轉(zhuǎn)換成時(shí)間戳 SELECT FROM_UNIXTIME(1514131200) :2017-12-25 00:00:00 //時(shí)間戳轉(zhuǎn)化為時(shí)間 SELECT DATE_FORMAT('2017-12-25 22:23:01', '%Y-%m-%d %H:%i:%s'); //字符串轉(zhuǎn)化為時(shí)間格式(date),也可以時(shí)間格式轉(zhuǎn)化為字符串格式
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)mysql能對(duì)日期進(jìn)行處理嗎大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。