mysql8 0日期型別 MySQL的日期型別

2021-10-13 11:05:44 字數 1720 閱讀 8777

-- mysql 中有多種資料型別可以用於日期和時間的表示,不同的版本可能有所差異,表 3-2 中

-- 列出了 mysql 5.0 中所支援的日期和時間型別。

-- 表 3-2 mysql 中的日期和時間型別

日期和時間型別

位元組最小值

最大值date

1000-01-01

9999-12-31

datetime

1000-01-01 00:00:00

9999-12-31 23:59:59

timestamp

2038 年的某個時刻

time

-838:59:59

838:59:59

year

日期和時間型別 位元組 最小值 最大值

date 4 1000-01-01 9999-12-31

datetime 8 1000-01-01 00:00:00 9999-12-31 23:59:59

timestamp 4 19700101080001 2038 年的某個時刻

time 3 -838:59:59 838:59:59

year 1 1901 2155

-- 這些資料型別的主要區別如下:

 如果要用來表示年月日,通常用 date 來表示。

 如果要用來表示年月日時分秒,通常用 datetime 表示。

如果只用來表示時分秒,通常用 time 來表示。

如果需要經常插入或者更新日期為當前系統時間,則通常使用 timestamp 來表示。

timestamp 值返回後顯示為「yyyy-mm-dd hh:mm:ss」格式的字串,顯示寬度固定

-- 為 19 個字元。如果想要獲得數字值,應在 timestamp 列新增+0。

--  如果只是表示年份,可以用 year 來表示,它比 date 占用更少的空間。year 有 2 位或

-- 4 位格式的年。預設是 4 位格式。在 4 位格式中,允許的值是 1901~2155 和 0000。在

-- 2 位格式中,允許的值是 70~69,表示從 1970~2069 年。mysql 以 yyyy 格式顯示 year值。

create table t (d date,t time,dt datetime);

timestamp還有乙個重要特點,就是和時區相關。

當插入日期時,會先轉換為本地時區後存放;而從資料庫裡面取出時,也同樣需要將日期轉換為本地時區後顯示。

-- timestamp支援的時間範圍較小,其取值範圍從19700101080001到2023年的某個

-- 時間,而datetime是從1000-01-01 00:00:00到9999-12-31 23:59:59,範圍更大。

-- 表中的第乙個timestamp列自動設定為系統時間。如果在乙個timestamp列中插入

-- null,則該列值將自動設定為當前的日期和時間。在插入或更新一行但不明確給

-- timestamp列賦值時也會自動設定該列的值為當前的日期和時間,當插入的值超出

-- 取值範圍時,mysql認為該值溢位,使用「0000-00-00 00:00:00」進行填補

-- timestamp的插入和查詢都受當地時區的影響,更能反應出實際的日期。而

-- datetime則只能反應出插入時當地的時區,其他時區的人檢視資料必然會有誤差的。

-- timestamp的屬性受mysql版本和伺服器sqlmode的影響很大,本章都是以mysql

MySQL 8 0參考手冊 3 3 4 5日期計算

該select宣告用於從 中提取資訊。宣告的一般形式是 what to select from which table where conditions to satisfy what to select表明你想看到什麼。這可能是列的列表,或 指示 的所有列。which table表示您要從中檢索資...

MySQL自學篇(十) 日期函式

1 獲取當前日期的函式和時間的函式 curdate 和 current date 函式,獲取當前日期 select current date curdate curdate 0 curdate 0 表示將當前時間轉化為數值型 curtime 和 current time 獲取當前時間 select ...

MySQL基本操作2 日期,時間型別和表的約束

日期和時間型別 常用的日期有如下三個 datetime 時間日期格式 yyyy mm dd hh ii ss 表示範圍從1000到9999,占用八字節 date 日期 yyyy mm dd 占用三位元組 timestamp 時間戳,從1970年開始的 yyyy mm dd hh ii ss格式和da...