MySQL資料型別 日期時間

2021-07-26 08:54:54 字數 1805 閱讀 6882

mysql中有多種表示時間日期的資料型別,主要有year、time、date、datetime、timestamp等。每一種資料型別都有儲存的時間日期格式、以及取值範圍,因此在使用時間日期資料型別的時候需要選取最佳的資料型別。

下圖列出了幾種資料型別:

year用於儲存年,儲存時只需要乙個位元組,插入資料時可以使用各種格式指定year值。

常見的插入格式解析:

a、四位字串或者數字格式,範圍為「1901」~「2155」,多少即為多少。

b、兩位字串格式,範圍為「00」~「99」,」00」~」69」被轉化為20**(例如:「16」轉化為「2016」),「70」~「99」被轉化為19**

c、兩位數字格式,範圍為1~99,1~69被轉化為20**(例如:1轉化為2001),70~99被轉化為19**

time用於儲存時間資訊,儲存時需要三個位元組。從上圖中可以了解到time的儲存格式,還有資料範圍。其中hh小時大於一天的24小時,可以為八百多的數字。這是因為這個型別不僅僅可以用於儲存一天的某個時間還可以記錄一段時間的間隔。所以小時就24小時。插入資料可以有多種格式。

常見插入格式解析:

a、」d hh:mm:ss」格式字串格式。還可以使用非嚴格語法插入,例如「hh:mm:ss」、」d hh:ss」、「mm:ss」、」d hh」、」ss「(d表示天,取值範圍為0~34)。在存入資料庫是d將會被轉換為d*24+hh,最終將當做小時進行入庫儲存。

b、」hhmmss「沒間隔的字串格式或者hhmmss沒間隔的數字格式,非嚴格語法插入可以為,mmss、ss、」mmss「等等。要注意的是:1、這兩種插入格式採用非嚴格語法的時候(即為時分秒不完整,只有時分等等),最右邊的資料將預設為秒數,例如插入2318時,最終入庫為002318。 2、分鐘與秒數的資料要有實際意義,假若·mm為65超過59,那麼將會發生錯誤。

date用於儲存日期,沒有時間部分,儲存時需要三個位元組。插入資料可以有多種格式。

常見插入格式解析:

a、」yyyy-mm-dd「、」yyyymmdd」。

b、」yy-mm-dd「、」yymmdd「,以兩位數字來插入年份,這裡主要區別」00~69」與「70~99」,前者表示20**,後者表示19**。

c、數字格式yy-mm-dd、yymmdd,兩位數字插入年份,區別於上面一樣。

d、使用函式插入,current_date()、now()

datetime用於儲存日期時間資料,儲存時需要八個位元組。插入資料可以有多種格式。

常見插入格式解析:

a、」yyyy-mm-dd hh:mm:ss「、」yyyymmddhhmmss」,最終插入資料庫都為2017-01-17 23:55:59格式。

b、」yy-mm-dd hh:mm:ss「、」yymmddhhmmss」,兩位數字插入年份,主要區分「00~69」與「70~99」,區別於上面一樣。

c、數字格式插入,yyyymmddhhmmss、yymmddhhmmss,兩位數字插入年份問題與上述一致。

timestamp用於儲存日期時間資料,與datetime儲存資料格式一樣,二者主要區別在於取值範圍。timestamp儲存需要四個位元組,它的取值範圍為「1970-01-01 00:00:01」 utc ~ 「2038-01-19 03:14:07」 utc,而datetime取值範圍為「1000-01-01 00:00:00」 ~ 「9999-12-31 23:59:59」(utc:coordinated universal time 世界時間標準) 。插入格式也有多種。

常見插入格式解析:

與datetime一致,可以參考上面。

MySQL資料型別 日期時間

日談健康 2017 01 18 00 31 一 部落格前言 自接觸學習mysql已有一段時間了,對於mysql的基礎知識還是有一定的了解的。在這一路學習過來,每次不管看書還是網上看的資料,對於mysql資料型別中的時間日期型別總是一掃而過,不曾停下來認認真真的研究學習。最近在圖書館借了一本關於mys...

MySQL資料型別 日期時間

一 前言 自接觸學習mysql已有一段時間了,對於mysql的基礎知識還是有一定的了解的。在這一路學習過來,每次不管看書還是網上看的資料,對於mysql資料型別中的時間日期型別總是一掃而過,不曾停下來認認真真的研究學習。最近在圖書館借了一本關於mysql的書籍,打算全面的學習研究一遍。在之前,我對於...

MySQL 資料型別之日期和時間型別

表示時間值的日期和時間型別為datetime date timestamp time和year。每個時間型別有乙個有效值範圍和乙個 零 值,當指定不合法的mysql不能表示的值時使用 零 值。1,date 範圍 1000 01 01 9999 12 31 格式 yyyy mm dd 2,time 範...