本文目錄一覽:
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-hant/n/198253.html