MySQL的日期類型


-- MySQL 中有多種數據類型可以用於日期和時間的表示,不同的版本可能有所差異,表 3-2 中
-- 列出了 MySQL 5.0 中所支持的日期和時間類型。
-- 表 3-2 MySQL 中的日期和時間類型

日期和時間類型 字節 最小值 最大值
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 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到2038年的某個
-- 時間,而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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM