Mysql學習->數據類型(日期時間類型)


日期時間類型  

  a.如果表示年月日,通常用DATE表示
  b.如果表示年月日時分秒,通常用DATETIME表示  
  c.如果表示時分秒,通常同TIME表示  

日期和時間類型

字節

最小值

最大值

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

   d.如果只表示年份,可以用YEAR來表示,它比DATE占用更少的空間,一般YEAR有4位和2位的格式,默認為4位的格式,允許的值是1901~2155和0000,2位格式 的基本廢棄
   e.可以看出每種日期都有一個有效值范圍,如果超出這個范圍系統會錯誤提示,並且以零值來進行存儲

       datatime 0000-00-00 00:00:00

       date  0000-00-00

       timestamp 00000000000000

          time   00:00:00

        year       0000

   創建date,datetime,time類型的表舉例

        

   用now()函數插入當前日期

        

   創建測試表t1,用來測試TIMESTAMP類型

        

   創建的時候系統自動給加上了CURRENT_TIMESTAMP(系統日期),插入一個NULL值

        

   果然就默認顯示了當前的系統時間,不過Mysql只給表中的第一個TIMESTAMP字段設置默認值,如果有第二個TIMESTAMP類型,則默認設置為0

   在添加一個TIMESTAMP類型的字段

        

   因此mysql中同一個表中只有一列的默認值為current_timestamp,強制修改會報錯的哦!!!

   f.    TIMESTAMP還有一個特性就是與時區有關,當插入日期時,會先轉化為本地時區后存放,而從數據庫里面取出時,也同樣將日期轉化為本地時區后顯示,

     這樣2個不同的用戶看到的同一個日期可能是不一樣的

     創建一個表

          

    當前時區為東八區,結果顯示倆個值都是相同的

    當修改時區為東九區的時候

          

    此時,id1位timestamp,id2位datetime,兩者之間差了1個小時

    所以timstamp插入和查詢都受當地時區的影響,更能反映出實際的日期,而DATETIME只能反映出插入時當地的時區,其他時區的人查看必然會出現誤差


免責聲明!

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



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