mysql中時(shí)間用什么類(lèi)型

時(shí)間類(lèi)型有3種:1、TIME類(lèi)型,用于只需要時(shí)間信息的值,在存儲(chǔ)時(shí)需要3個(gè)字節(jié),格式為“HH:MM:SS”;2、dateTIME類(lèi)型,用于需要同時(shí)包含日期和時(shí)間信息的值,在存儲(chǔ)時(shí)需要8個(gè)字節(jié),格式為“YYYY-MM-DD HH:MM:SS”;3、timestamp類(lèi)型,用于需要同時(shí)包含日期和時(shí)間信息的值,在存儲(chǔ)時(shí)需要4個(gè)字節(jié),格式為“YYYY-MM-DD HH:MM:SS”。

mysql中時(shí)間用什么類(lèi)型

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

mysql 中有多處表示日期時(shí)間的數(shù)據(jù)類(lèi)型:YEAR、TIME、DATE、DTAETIME、TIMESTAMP。當(dāng)只記錄年信息的時(shí)候,可以只使用 YEAR 類(lèi)型。

每一個(gè)類(lèi)型都有合法的取值范圍,當(dāng)指定確定不合法的值時(shí),系統(tǒng)將“零”值插入數(shù)據(jù)庫(kù)中。

其中可表示時(shí)間的類(lèi)型有三種。

類(lèi)型名稱(chēng) 時(shí)間格式 日期范圍 存儲(chǔ)需求
TIME HH:MM:SS -838:59:59 ~ 838:59:59 3 個(gè)字節(jié)
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8 個(gè)字節(jié)
TIMESTAMP YYYY-MM-DD HH:MM:SS 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC 4 個(gè)字節(jié)

TIME 類(lèi)型

TIME 類(lèi)型用于只需要時(shí)間信息的值,在存儲(chǔ)時(shí)需要 3 個(gè)字節(jié)。格式為 HH:MM:SS。HH 表示小時(shí),MM 表示分鐘,SS 表示秒。

TIME 類(lèi)型的取值范圍為 -838:59:59~838:59:59,小時(shí)部分如此大的原因是 TIME 類(lèi)型不僅可以用于表示一天的時(shí)間(必須小于 24 小時(shí)),還可能是某個(gè)事件過(guò)去的時(shí)間或兩個(gè)事件之間的時(shí)間間隔(可大于 24 小時(shí),或者甚至為負(fù))。

可以使用各種格式指定 TIME 值,如下所示。

  • ‘D HH:MM:SS’ 格式的字符串。還可以使用這些“非嚴(yán)格”的語(yǔ)法:’HH:MM:SS’、’HH:MM’、’D HH’ 或 ‘SS’。這里的 D 表示日,可以取 0~34 之間的值。在插入數(shù)據(jù)庫(kù)時(shí),D 被轉(zhuǎn)換為小時(shí)保存,格式為 “D*24+HH”。

  • ‘HHMMSS’ 格式、沒(méi)有間隔符的字符串或者 HHMMSS 格式的數(shù)值,假定是有意義的時(shí)間。例如,’101112′ 被理解為’10:11:12’,但是 ‘106112’ 是不合法的(它有一個(gè)沒(méi)有意義的分鐘部分),在存儲(chǔ)時(shí)將變?yōu)?00:00:00。

提示:為 TIME 列分配簡(jiǎn)寫(xiě)值時(shí)應(yīng)注意:如果沒(méi)有冒號(hào),MySQL 解釋值時(shí),假定最右邊的兩位表示秒。(MySQL 解釋 TIME 值為過(guò)去的時(shí)間而不是當(dāng)前的時(shí)間)。例如,讀者可能認(rèn)為 ‘1112’ 和 1112 表示 11:12:00(即 11 點(diǎn)過(guò) 12 分鐘),但MySQL 將它們解釋為 00:11:12(即 11 分 12 秒)。同樣 ’12’ 和 12 被解釋為00:00:12。相反,TIME 值中如果使用冒號(hào)則肯定被看作當(dāng)天的時(shí)間,也就是說(shuō),’11:12′ 表示 11:12:00,而不是 00:11:12。

DATETIME 類(lèi)型

DATETIME 類(lèi)型用于需要同時(shí)包含日期和時(shí)間信息的值,在存儲(chǔ)時(shí)需要 8 個(gè)字節(jié)。日期格式為 ‘YYYY-MM-DD HH:MM:SS’,其中 YYYY 表示年,MM 表示月,DD 表示日,HH 表示小時(shí),MM 表示分鐘,SS 表示秒。

在給 DATETIME 類(lèi)型的字段賦值時(shí),可以使用字符串類(lèi)型或者數(shù)字類(lèi)型的數(shù)據(jù)插入,只要符合 DATETIME 的日期格式即可,如下所示:

  • 以 ‘YYYY-MM-DD HH:MM:SS’ 或者 ‘YYYYMMDDHHMMSS’ 字符串格式表示的日期,取值范圍為 ‘1000-01-01 00:00:00’~’9999-12-3 23:59:59’。例如,輸入 ‘2014-12-31 05:05:05’ 或者 ‘20141231050505’,插入數(shù)據(jù)庫(kù)的 DATETIME 值都為 2014-12-31 05:05:05。

  • 以 ‘YY-MM-DD HH:MM:SS’ 或者 ‘YYMMDDHHMMSS’ 字符串格式表示的日期,在這里 YY 表示兩位的年值。與前面相同,’00~79′ 范圍的年值轉(zhuǎn)換為 ‘2000~2079’,’80~99’ 范圍的年值轉(zhuǎn)換為 ‘1980~1999’。例如,輸入 ’14-12-31 05:05:05’,插入數(shù)據(jù)庫(kù)的 DATETIME 為 2014-12-31 05:05:05;輸入 141231050505,插入數(shù)據(jù)庫(kù)的 DATETIME 為 2014-12-31 05:05:05。

  • 以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 數(shù)字格式表示的日期和時(shí)間。例如,輸入 20141231050505,插入數(shù)據(jù)庫(kù)的 DATETIME 為 2014-12-31 05:05:05;輸入 140505050505,插入數(shù)據(jù)庫(kù)的 DATETIME 為 2014-12-31 05:05:05。

提示:MySQL 允許“不嚴(yán)格”語(yǔ)法:任何標(biāo)點(diǎn)符號(hào)都可用作日期部分或時(shí)間部分之間的間隔符。例如,’98-12-31 11:30:45’、’98.12.31 11+30+35’、’98/12/31 11*30*45′ 和 ’98@12@31 11^30^45′ 是等價(jià)的,這些值都可以正確地插入數(shù)據(jù)庫(kù)。

TIMESTAMP 類(lèi)型

TIMESTAMP 的顯示格式與 DATETIME 相同,顯示寬度固定在 19 個(gè)字符,日期格式為 YYYY-MM-DD HH:MM:SS,在存儲(chǔ)時(shí)需要 4 個(gè)字節(jié)。但是 TIMESTAMP 列的取值范圍小于 DATETIME 的取值范圍,為 ‘1970-01-01 00:00:01’UTC~’2038-01-19 03:14:07’UTC。在插入數(shù)據(jù)時(shí),要保證在合法的取值范圍內(nèi)。

提示:協(xié)調(diào)世界時(shí)(英:Coordinated Universal Time,法:Temps Universel Coordonné)又稱(chēng)為世界統(tǒng)一時(shí)間、世界標(biāo)準(zhǔn)時(shí)間、國(guó)際協(xié)調(diào)時(shí)間。英文(CUT)和法文(TUC)的縮寫(xiě)不同,作為妥協(xié),簡(jiǎn)稱(chēng) UTC。

TIMESTAMP 與 DATETIME 除了存儲(chǔ)字節(jié)和支持的范圍不同外,還有一個(gè)最大的區(qū)別是:

  • DATETIME 在存儲(chǔ)日期數(shù)據(jù)時(shí),按實(shí)際輸入的格式存儲(chǔ),即輸入什么就存儲(chǔ)什么,與時(shí)區(qū)無(wú)關(guān);

  • 而 TIMESTAMP 值的存儲(chǔ)是以 UTC(世界標(biāo)準(zhǔn)時(shí)間)格式保存的,存儲(chǔ)時(shí)對(duì)當(dāng)前時(shí)區(qū)進(jìn)行轉(zhuǎn)換,檢索時(shí)再轉(zhuǎn)換回當(dāng)前時(shí)區(qū)。即查詢時(shí),根據(jù)當(dāng)前時(shí)區(qū)的不同,顯示的時(shí)間值是不同的。

提示:如果為一個(gè) DATETIME 或 TIMESTAMP 對(duì)象分配一個(gè) DATE 值,結(jié)果值的時(shí)間部分被設(shè)置為 ’00:00:00’,因此 DATE 值未包含時(shí)間信息。如果為一個(gè) DATE 對(duì)象分配一個(gè) DATETIME 或 TIMESTAMP 值,結(jié)果值的時(shí)間部分被刪除,因此DATE 值未包含時(shí)間信息。

【相關(guān)推薦:mysql視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享