1、year表示年份:位元組數為1,取值範圍為「1901——2155」
2、date表示日期:位元組數為4,取值範圍為「1000-01-01——9999-12-31」
datetime和timestamp表示日期和時間
4、datetime:位元組數為8,取值範圍為「1000-01-01 00:00:00——9999-12-31 23:59:59」
5、timestamp:位元組數為4,取值範圍為「19700101080001——20380119111407」
方式一:
直接插入4位字串("1998")或者4位數字(1998)
方式二:
插入兩位字串("04")
如果範圍是"00"-"69",則相當於插入"2000"-"2069"
如果範圍是"70"-"99",則相當於插入"1970"-"1999"
**注:"0"和"00"的效果一樣都表示2023年**
方式三:
插入兩位數字(90)
插入數字和插入字元的區別在於,插入一位0表示的不是2023年,而是0000.
time型別表示為「時:分:秒」,儘管小時範圍一般是0~23,但是為了表示某些特殊時間間隔,mysql將time的小時範圍擴發了,而且支援負值。
標準格式是"hh:mm:ss",但是不一定是這種格式,可以是
"d hh:mm:ss"
"hh:mm"
"ss"
"d hh"
"d hh:mm"
"d hh:mm:ss"相當於是"(d*24+hh):mm:ss"
eg:插入的是"2 23:50:50"="71:50:50"
"hh:mm"
eg:"11:25"="11:25:00"
"ss"
eg:"30"="00:00:30"
標準格式是"yyyy-mm-dd"、其他的還有"yyyy@mm@dd"、"yyyy.mm.dd"等
還可以用"yy-mm-dd"
標準格式為"yyyy-mm-dd hh:mm:ss"
具體賦值方法與上面各種型別的方法相似。
timestamp的取值範圍比較小,沒有datetime的取值範圍大,因此輸入值時一定要保證在timestamp的範圍之內。它的插入也與插入其他日期和時間資料型別類似。
**插入當前時間
第一,可以使用current_timestamp;
第二,輸入null,系統自動輸入當前的timestamp;
第三,無任何輸入,系統自動輸入當前的timestamp。
列型別:"零"值
datetime:'0000-00-00 00:00:00'
date:'0000-00-00'
timestamp:00000000000000
time:'00:00:00'
year:0000
1. 占用8個位元組
2. 允許為空值,可以自定義值,系統不會自動修改其值。
3. 實際格式儲存
4. 與時區無關
5. 不可以設定預設值,所以在不允許為空值的情況下,必須手動指定datetime欄位的值才可以成功插入資料。
6. 可以在指定datetime欄位的值的時候使用now()變數來自動插入系統的當前時間。
結論:datetime型別適合用來記錄資料的原始的建立時間,因為無論你怎麼更改記錄中其他欄位的值,datetime欄位的值都不會改變,除非你手動更改它。
1. 占用4個位元組
2. 允許為空值,但是不可以自定義值,所以為空值時沒有任何意義。
3. timestamp值不能早於1970或晚於2037。這說明乙個日期,例如'1968-01-01',雖然對於datetime或date值是有效的,但對於timestamp值卻無效,如果分配給這樣乙個物件將被轉換為0。
4. 值以utc格式儲存
5. 時區轉化 ,儲存時對當前的時區進行轉換,檢索時再轉換回當前的時區。
6. 預設值為current_timestamp(),其實也就是當前的系統時間。
7. 資料庫會自動修改其值,所以在插入記錄時不需要指定timestamp欄位的名稱和timestamp欄位的值,你只需要在設計表的時候新增乙個timestamp欄位即可,插入後該字段的值會自動變為當前系統時間。
8. 若是設定了**on update current_timestamp**以後任何時間修改表中的記錄時,對應記錄的timestamp值會自動被更新為當前的系統時間。
結論:timestamp型別適合用來記錄資料的最後修改時間,因為只要你更改了記錄中其他欄位的值,timestamp欄位的值都會被自動更新。
mysql日期和時間型別 MySQL日期和時間型別
mysql中儲存日和和時間,使用日期和時間型別。提供的包括year date time datetime和timestamp。year 占用 1位元組 取值範圍 1901 2155 日期格式 yyyy 0000 date 占用 4位元組 取值范文 1000 01 01 9999 12 3 日期格式 ...
MySQL日期和時間型別
date 日期。支援的範圍為 1000 01 01 到 9999 12 31 mysql以 yyyy mm dd 格式顯示date值,但允許使用字串或數字為date列分配值。datetime 日期和時間的組合。支援的範圍是 1000 01 01 00 00 00 到 9999 12 31 23 59...
MySQL日期和時間型別
標籤 空格分隔 高效能mysql 第四章 schema與資料型別 日期和時間型別 型別儲存 byte 範圍是否愛時區影響 精度datetime 81001年 9999年 否秒,5.6.4版本以後的可以指定精度 timestamp 41970年 2038年 是秒,5.6.4版本以後的可以指定精度 5....