本文目錄一覽:
mysql 時間欄位用什麼類弄,長度是多少
mysql時間欄位用:Date、Datetime和Timestamp。
(1)「Date」數據類型:用於存儲沒有時間的日期。 Mysql獲取並顯示此類型的格式為「 YYYY-MM-DD」,支持的時間長度範圍是「 1000-00-00」至「 9999-12-31」。
(2)「Datetime」類型:存儲日期和時間的數據。 存儲和顯示格式為「 YYYY-MM-DD HH:MM:SS」, 支持的時間長度範圍是「 1000-00-00 00:00:00」到「 9999-12-31 23:59:59」。
(3)「Timestamp」類型:存儲日期和時間的數據。 存儲和顯示格式與日期時間相同。 支持的時間長度範圍是「 1970-01-01 00:00:01」至「 2038-01-19 03:14:07」。
所有不符合上述格式的數據都將轉換為0值的相應類型。
擴展資料:
MySQL主要分為三種類型:字元串,日期和數字(每種類型實際上都有一個二進位類型,但並不常用)。
*字元串分為定長char和不定長度varchar,char以聲明的長度為準,而varchar的長度與值的長度和字符集有關。
*數字和日期均為固定長度的欄位。 不同的類型具有不同的長度。 例如,Datetime是5.6.4之後的5個位元組,之前的是8個位元組; timestamp是4個位元組,因為其存儲整數,小數部分的長度通常與位數有關。
mysql中常見的數據類型
一:MySQL數據類型
MySQL中定義數據欄位的類型對你資料庫的優化是非常重要的
MySQL支持多種數據類型,大致可以分為三類:數值 日期/時間和字元串
二、數值類型
1.整數類型
2.浮點數
如果希望保證值比較準確,推薦使用定點數數據類型。MySql中的浮點類型有float,double和real。他們定義方式為:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D)。
FLOAT和DOUBLE中的M和D的取值默認都為0,即除了最大最小值,不限制位數。允許的值理論上是-1.7976931348623157E+308~-2.2250738585072014E-308、0和2.2250738585072014E-308~1.7976931348623157E+308。M、D範圍如下:
(MySql5.7實測,與IEEE標準計算的實際是不同的,下面介紹):M取值範圍為0~255。FLOAT只保證6位有效數字的準確性,所以FLOAT(M,D)中,M=6時,數字通常是準確的。如果M和D都有明確定義,其超出範圍後的處理同decimal。
D取值範圍為0~30,同時必須=M。double只保證16位有效數字的準確性,所以DOUBLE(M,D)中,M=16時,數字通常是準確的。如果M和D都有明確定義,其超出範圍後的處理同decimal。
CHAR值時,在它們的右邊填充空格以達到指定的長度。當檢索到CHAR值時,尾部的空格被刪除掉,所以,我們在存儲時字元串右邊不能有空格,即使有,查詢出來後也會被刪除。在存儲或檢索過程中不進行大小寫轉換。
三、時間日期類型(5)
該「0」值如下:
請點擊輸入圖片描述
四、各種類型佔用的存儲
1.數值類型
請點擊輸入圖片描述
定點數的比較特殊,而且與具體版本也有關係,此處單獨解釋:
使用二進位格式將9個十進位(基於10)數壓縮為4個位元組來表示DECIMAL列值。每個值的整數和分數部分的存儲分別確定。每個9位數的倍數需要4個位元組,並且「剩餘的」位需要4個位元組的一部分。下表給出了超出位數的存儲需求:
請點擊輸入圖片描述
2.時間日期
請點擊輸入圖片描述
從版本5.6.4開始,存儲需求就有所改變,根據精度而定。不確定部分需要的存儲如下:
請點擊輸入圖片描述
比如,TIME(0), TIME(2), TIME(4), 和TIME(6) 分別使用3, 4, 5, 6 bytes。
3.字元串
請點擊輸入圖片描述
4.類型的選擇
為了優化存儲,在任何情況下均應使用最精確的類型。
例如,如果列的值的範圍為從1到99999,若使用整數,則MEDIUMINT UNSIGNED是好的類型。在所有可以表示該列值的類型中,該類型使用的存儲最少。
用精度為65位十進位數(基於10)對DECIMAL 列進行所有基本計算(+、-、*、/)。
使用雙精度操作對DECIMAL值進行計算。如果準確度不是太重要或如果速度為最高優先順序,DOUBLE類型即足夠了。為了達到高精度,可以轉換到保存在BIGINT中的定點類型。這樣可以用64位整數進行所有計算,根據需要將結果轉換回浮點值。
5.使用其他資料庫的SQL語句
為了使用為其它資料庫編寫的SQL執行代碼,MySQL按照下表所示對列類型進行映射。通過這些映射,可以很容易地從其它資料庫引擎將表定義導入到MySQL中:
請點擊輸入圖片描述
mysql資料庫里的日期用timestamp還是datetime好?
Mysql中經常用來存儲日期的數據類型有2種:Date、Datetime.
1.Date數據類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為「YYYY-MM-DD」。支持的時間範圍為「1000-00-00」到「9999-12-31」。
2.Datetime類型:存儲既有日期又有時間的數據。存儲和顯示的格式為 「YYYY-MM-DD HH:MM:SS」。支持的時間範圍是「1000-00-00 00:00:00」到「9999-12-31 23:59:59」。
TIMESTAMP列用於INSERT或UPDATE操作時記錄日期和時間。如果你不分配一個值,表中的第一個TIMESTAMP列自動設置為最近操作的日期和時間。也可以通過分配一個NULL值,將TIMESTAMP列設置為當前的日期和時間。
TIMESTAMP值返回後顯示為’YYYY-MM-DDHH:MM:SS’格式的字元串,顯示寬度固定為19個字元。如果想要獲得數字值,應在TIMESTAMP列添加+0。
注釋:MySQL4.1以前使用的TIMESTAMP格式在MySQL5.1中不支持;關於舊格式的信息參見MySQL4.1參考手冊。
資料庫中 日期的幾種表示方法
Mysql中經常用來存儲日期的數據類型有三種:Date、Datetime、Timestamp。
【1】Date數據類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為「YYYY-MM-DD」。支持的時間範圍為「1000-00-00」到「9999-12-31」。
【2】Datetime類型:存儲既有日期又有時間的數據。存儲和顯示的格式為 「YYYY-MM-DD HH:MM:SS」。支持的時間範圍是「1000-00-00 00:00:00」到「9999-12-31 23:59:59」。
【3】Timestamp類型:也是存儲既有日期又有時間的數據。存儲和顯示的格式跟Datetime一樣。支持的時間範圍是「1970-01-01 00:00:01」到「2038-01-19 03:14:07」。
擴展資料
切記不要用字元串存儲日期
這種存儲日期的方式的優點還是有的,就是簡單直白,容易上手。但是,這是不正確的做法,主要會有下面兩個問題:
1、字元串佔用的空間更大。
2、字元串存儲的日期比較效率比較低(逐個字元進行比對),無法用日期相關的 API 進行計算和比較。
DateTime 類型沒有時區信息的
DateTime 類型是沒有時區信息的(時區無關) ,DateTime 類型保存的時間都是當前會話所設置的時區對應的時間。
當你的時區更換之後,比如你的伺服器更換地址或者更換客戶端連接時區設置的話,就會導致你從資料庫中讀出的時間錯誤。不要小看這個問題,很多系統就是因為這個問題鬧出了很多笑話。
Timestamp 和時區有關。Timestamp 類型欄位的值會隨著伺服器時區的變化而變化,自動換算成相應的時間,說簡單點就是在不同時區,查詢到同一個條記錄此欄位的值會不一樣。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198253.html