乙個完整的日期格式為:yyyy-mm-dd hh:mm:ss[.fraction],它可分為兩部分:date部分和time部分,其中,date部分對應格式中的「yyyy-mm-dd」,time部分對應格式中的「hh:mm:ss[.fraction]」。對於date欄位來說,它只支援date部分,如果插入了time部分的內容,它會丟棄掉該部分的內容,並提示乙個warning。
timestamp 和 datatime:
兩者都可用來表示yyyy-mm-dd hh:mm:ss[.fraction]型別的日期。
timestamp
它把客戶端插入的時間從當前時區轉化為utc(世界標準時間)進行儲存。查詢時,將其又轉化為客戶端當前時區進行返回。
能儲存的時間範圍為:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'
datatime
不做任何改變,基本上是原樣輸入和輸出。
能儲存的時間範圍為:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。
字元與位元組的區別:
乙個字元由於所使用的字符集的不同,會並儲存在乙個或多個位元組中,所以乙個字元占用多少個位元組取決於所使用的字符集
char 和 varchar的區別:
char定義的是固定長度,長度範圍為0-255,儲存時,如果字元數沒有達到定義的位數,會在後面用空格補全存入資料庫中。
在取出資料的時候,會把補全的空格去掉。如果存入時末尾有空格,則取出時是不含空格的。
可以通過pad_char_to_full_length設定來使得獲取的內容不去掉末尾的空格。
varchar是變長長度,長度範圍為0-65535,儲存時,如果字元沒有達到定義的位數,不會在後面補空格補全。
會額外使用一或兩個位元組來描述該位元組長度。當資料位占用的位元組數小於255時,用1個位元組來記錄長度,資料位占用位元組數大於255時,用2個位元組來記錄長度,還有一位來記錄是否為nul值
最大位元組數為65535,當使用utf8編碼時,乙個字元有可能占用三個位元組的時候,varchar如果定義允許空的話能定義的最大長度為(65535-1-2)/3=21844.
mysql在對比char,varchar,text型別的資料時,是不會把尾部的空格考慮在內的,這對所有字符集都適用,但在這裡是除了like比較符的
char,varchar,text型別的查詢:
在like進行模糊查詢時,如果傳入的字串帶有空格,則會影響到匹配的結果。
除like外的其他比較,傳入的字串末尾的空格會被忽略後。
注:在建表中指定的長度,表示用於顯示的位數。不會影響儲存的大小和表示的範圍。
- bigint:從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型資料(所有數字)。儲存大小為 8 個位元組。
- int:從 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型資料(所有數字)。儲存大小為 4 個位元組。int 的 sql-92 同義字為 integer。
- smallint:從 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型資料。儲存大小為 2 個位元組。
- tinyint:從 0 到 255 的整型資料。儲存大小為 1 位元組。
mysql欄位型別解析 MySQL欄位型別最全解析
前言 要了解乙個資料庫,我們必須了解其支援的資料型別。mysql 支援大量的字段型別,其中常用的也有很多。前面文章我們也講過 int 及 varchar 型別的用法,但一直沒有全面講過字段型別,本篇文章我們將把字段型別一網打盡,講一講常用字段型別的用法。常用的字段型別大致可以分為數值型別 字串型別 ...
mysql學習筆記 字段型別(一)
mysql欄位型別研究,字段型別有下面幾個大類 數值型別 日期和時間型別 string型別 mysql支援所有標準sql數值資料型別。這些型別包括嚴格數值資料型別 integer smallint decimal和numeric 以及近似數值資料型別 float real和double precis...
mysql密碼字段型別 MySQL欄位型別最全解析
前言 要了解乙個資料庫,我們必須了解其支援的資料型別。mysql 支援大量的字段型別,其中常用的也有很多。前面文章我們也講過 int 及 varchar 型別的用法,但一直沒有全面講過字段型別,本篇文章我們將把字段型別一網打盡,講一講常用字段型別的用法。常用的字段型別大致可以分為 數值型別 字串型別...