主要類(lèi)型:YEAR、TIME、DATE、DATETIME、TIMESTAMP
(日期函數(shù):current_date(當(dāng)前日期)、current_time(當(dāng)前時(shí)間)、
now()(當(dāng)前日期和時(shí)間,根據(jù)字段類(lèi)型顯示日期或者時(shí)間))
實(shí)驗(yàn)timetest表結(jié)構(gòu)
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),平江企業(yè)網(wǎng)站建設(shè),平江品牌網(wǎng)站建設(shè),網(wǎng)站定制,平江網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,平江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
DATETIME
DATETIME 用于表示年月日時(shí)分秒,是 DATE 和 TIME 的組合,并且記錄的年份(見(jiàn)上表)比較長(zhǎng)久。DATETIME類(lèi)型,包含日期和時(shí)間部分。可以使用引號(hào)字符串或數(shù)字兩種,年份可以是4 位,也可以是2位如果實(shí)際應(yīng)用中有這樣的需求,就可以使用 DATETIME 類(lèi)型。
TIMESTAMP
TIMESTAMP 用于表示 年月日 時(shí)分秒,但是記錄的年份(見(jiàn)上表)比較短暫。
TIMESTAMP 和時(shí)區(qū)相關(guān),更能反映當(dāng)前時(shí)間。當(dāng)插入日期時(shí),會(huì)先轉(zhuǎn)換為本地時(shí)區(qū)后再存放;當(dāng)查詢(xún)?nèi)掌跁r(shí),會(huì)將日期轉(zhuǎn)換為本地時(shí)區(qū)后再顯示。所以不同時(shí)區(qū)的人看到的同一時(shí)間是 不一樣的。
表中的第一個(gè) TIMESTAMP 列自動(dòng)設(shè)置為系統(tǒng)時(shí)間(CURRENT_TIMESTAMP)。當(dāng)插入或更新一行,但沒(méi)有明確給 TIMESTAMP 列賦值,也會(huì)自動(dòng)設(shè)置為當(dāng)前系統(tǒng)時(shí)間。如果表中有第二個(gè) TIMESTAMP 列,則默認(rèn)值設(shè)置為0000-00-00 00:00:00。
TIMESTAMP 的屬性受 MySQL 版本和服務(wù)器 SQLMode 的影響較大。
如果記錄的日期需要讓不同時(shí)區(qū)的人使用,最好使用 TIMESTAMP。
TIMESTAMP類(lèi)型和DATETIME類(lèi)型的表示格式相同,存儲(chǔ)4個(gè)字節(jié)(比DATETIME少),取值范圍少于DATETIME類(lèi)型。
TIMESTAMP和DATETIME最大不同于:TIMESTAMP根據(jù)時(shí)區(qū)顯示時(shí)間。
上圖timstamp字段會(huì)隨著時(shí)區(qū)的變化而變換,但是datetime則不會(huì)變化。
DATE
DATE 用于表示 年月日,如果實(shí)際應(yīng)用值需要保存 年月日 就可以使用 DATE。
DATE類(lèi)型可以通過(guò)如下格式表示:
‘YYYY-MM-DD','YYYYMMDD',YYYYMMDD,'YY-MM-DD','YYMMDD',YYMMDD
其中當(dāng)使用兩位表示年份時(shí),分00~69和70~99兩種,參考YEAR類(lèi)型。
TIME
TIME 用于表示 時(shí)分秒,如果實(shí)際應(yīng)用值需要保存 時(shí)分秒 就可以使用 TIME。
TIME類(lèi)型可以用多種格式表示,如:
‘D HH:MM:SS':D表示天數(shù),在插入表中時(shí)會(huì)折算成小時(shí),即:D*24+HH:MM:SS。
'HHMMSS':省略冒號(hào),但各個(gè)時(shí)間要有意義,比如‘128012’分鐘部分會(huì)被識(shí)別為‘12:80:12’,80分鐘是沒(méi)有意義的,插入會(huì)報(bào)錯(cuò)。
'HH:MM':表示小時(shí)分鐘,如‘12:08’表示12小時(shí)8分鐘。
'SS':表示秒。
需要注意的是:如果輸入‘1208’,雖然我們想讓MySQL識(shí)別為12小時(shí)8分鐘,但在這種格式下,MySQL識(shí)別為‘00:12:08’
YEAR
YEAR 用于表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默認(rèn)是4位。如果實(shí)際應(yīng)用只保存年份,那么用 1 bytes 保存 YEAR 類(lèi)型完全可以。不但能夠節(jié)約存儲(chǔ)空間,還能提高表的操作效率。
1.以4位數(shù)字或字符串表示,兩者效果相同,表示范圍1901~2155,插入超出范圍的數(shù)據(jù)會(huì)報(bào)錯(cuò)。
2.以2位字符串格式表示,范圍為‘00’~‘99’?!?0’~‘69’表示2000~2069,‘70’~‘99’表示1970~1999。‘0’和‘00’都會(huì)被識(shí)別為2000,超出范圍的數(shù)據(jù)也會(huì)被識(shí)別為2000。
3.以2位數(shù)字格式表示,范圍為1~99。1~69表示2001~2069,70~99表示1970~1999。但0值會(huì)被識(shí)別為0000,這和2位字符串被識(shí)別為2000有所不同。
insert into timetest(t_year) values(2018),('2018'),('00'),(00),(10),('10'),(77),('77'),('0'),(0);