史上最簡單的 MySQL 教程(十)「列型別 之 日期時間型」
阿新 • • 發佈:2019-02-13
溫馨提示:本系列博文已經同步到 GitHub,地址為「mysql-tutorial」,歡迎感興趣的童鞋
Star
、Fork
,糾錯。
列型別(資料型別)
所謂的列型別,其實就是指資料型別,即對資料進行統一的分類,從系統的角度出發是為了能夠使用統一的方式進行管理,更好的利用有限的空間。
在 SQL 中,將資料型別分成了三大類,分別為:數值型、字串型和日期時間型。
日期時間型
日期時間型資料,顧名思義,就是用來表示日期和時間的資料型別,共有五種型別,分別為:
datetime
:日期時間,其格式為yyyy-MM-dd HH:mm:ss
,表示的範圍是從 1000 年到 9999 年,有零值,即0000-00-00 0000:00
date
:日期,就是datetime
的date
部分;time
:時間,或者說是時間段,為指定的某個時間區間之間,包含正負時間;timestamp
:時間戳,但並不是真正意義上的時間戳,其是從1970
年開始計算的,格式和datetime
一致;year
:年份,共有兩種格式,分別為year(2)
和year(4)
.
執行如下 SQL 語句建立日期時間表,進行測試:
-- 建立日期時間表
create table my_date(
d1 datetime,
d2 date,
d3 time,
d4 timestamp,
d5 year
)charset utf8;
當咱們插入資料時,日期時間型中的time
,可以為負數,甚至可以是很大的負數;year
,可以使用 2 位資料插入,也可以使用 4 位資料插入;timestamp
,只要當前所在的記錄被更新,該欄位就會自動更新為當前時間,且時間戳型別預設為非空的。
-- 插入測試資料
insert into my_date values ('2017-05-06 13:15:00','2017-05-06','13:15:00','2017-05-06 13:15:00',2017);
insert into my_date values ('2017-05-06 13:15:00','2017-05-06','-113:15:00','2017-05-06 13:15:00' ,69);
insert into my_date values ('2017-05-06 13:15:00','2017-05-06','-2 13:15:00','2017-05-06 13:15:00',70);
如上圖所示,以上 3 條記錄已經插入成功,接下來,咱們再來驗證更新記錄時,時間戳型別的欄位d4
是否會自動更新:
-- 更新記錄,驗證時間戳型別的欄位是否會自動更新
update my_date set d1 = '2017-05-06 13:24:00' where d5 = 1970;
如上圖所示,顯然咱們的結論全部得到了驗證。