溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql能對日期進(jìn)行處理嗎

發(fā)布時(shí)間:2020-10-09 17:13:48 來源:億速云 閱讀:336 作者:小新 欄目:MySQL數(shù)據(jù)庫

mysql能對日期進(jìn)行處理嗎?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

mysql可以做日期處理;它可以利用CURDATE()、NOW()、YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()等內(nèi)置函數(shù)來做日期處理,例“SELECT  CURDATE()”獲取當(dāng)前日期。

最近一個(gè)項(xiàng)目,需要寫很多的sql語句。涉及到很多與時(shí)間相關(guān)的處理,現(xiàn)在做一下簡單的總結(jié)。

1.時(shí)間格式:在這個(gè)項(xiàng)目中,或許是由不同的人建立的數(shù)據(jù)庫表結(jié)構(gòu)吧,對時(shí)間的格式步統(tǒng)一,有的表中存儲的long類型的時(shí)間戳,有的表中是存儲的日期,有的表中存儲的是時(shí)間,同時(shí)格式有20171225,2017-12-25等,一點(diǎn)都不統(tǒng)一。這樣做,會(huì)對項(xiàng)目增加一些額外的工作量,同時(shí)會(huì)衍生出一些問題出來。比如,在寫后臺代碼時(shí),需要對時(shí)間做出處理,以適應(yīng)數(shù)據(jù)庫的時(shí)間格式;在進(jìn)行奪標(biāo)聯(lián)合查詢時(shí),時(shí)間格式不統(tǒng)一,又會(huì)對sql語句進(jìn)行時(shí)間格式轉(zhuǎn)換,造成sql語句臃腫的情況。所以,在同一個(gè)項(xiàng)目中,時(shí)間格式應(yīng)該保持統(tǒng)一。個(gè)人覺得long 類型的時(shí)間戳,以及String類型的yyyy-MM-dd HH:mm:ss 這兩種方式時(shí)比較不錯(cuò)的。

long類型的時(shí)間戳,是因?yàn)楹笈_java代碼將date類型的時(shí)間轉(zhuǎn)化為時(shí)間戳很容易。

String類型時(shí)因?yàn)?,我們假如?jīng)常使用時(shí)間這個(gè)字段,在應(yīng)用時(shí)不需要額外將Date類型轉(zhuǎn)化為String類型,使用起來比較直觀,方便。

2.常用時(shí)間語句

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í)間減去一年,該語句可以進(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í)間格式,也可以使用如上語句,例如: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)容,你們對mysql能對日期進(jìn)行處理嗎大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI