大家好,我是IT修真院深圳分院第6期學員,一枚正直善良的JAVA程序員。
今天給大家分享一下,修真院官網(wǎng)JAVA任務(wù)中,task1部分的知識點——Date類型
1.背景介紹
mysql中的date類型。
格式的規(guī)定:Y表示年、M(前M)表示月、D表示日、H表示小時、M(后M)表示分鐘、S表示秒。
下面是MySQL中可用的日期和時間列類型?
DATETIME——格式:'YYYY-MM-DD HH:MM:SS',范圍:'1000-01-01 00:00:00'到'9999-12-31 23:59:59'?
DATE——格式:'YYYY-MM-DD',范圍:'1000-01-01'到'9999-12-31'?
TIMESTAMP——格式:'YYYYMMDDHHMMSS'、'YYMMDDHHMMSS'、'YYYYMMDD'、'YYMMDD',范圍:'1970-01-01 00:00:00'到'2037-01-01 00:00:00'?
TIME——格式:'HH:MM:SS'?
2.知識剖析
時間戳指的就是Unix時間戳(Unix timestamp)。它也被稱為Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現(xiàn)在的總秒數(shù)。因此,嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳都是相同的。這點有利于線上和客戶端分布式應(yīng)用統(tǒng)一追蹤時間信息。
3.常見問題
明明Date類型就該表示時間,為何要用bigint替代呢?
4.解決方案
Date類型與時區(qū)有關(guān)。
timestamp與時區(qū)無關(guān)。
mysql 中的timestamp會自動更新,如果不需要這個功能,則使用bigint記錄timestamp。
5.編碼實戰(zhàn)
6.擴展思考
如何選擇mysql的數(shù)據(jù)類型?
更小的通常是更好的(一般情況下,應(yīng)該盡可能使用正確存儲數(shù)據(jù)的最小數(shù)據(jù)類型。)
為什么呢?
(1)?因為更小的數(shù)據(jù)類型通常更快,因為它們占用更少的磁盤、內(nèi)存和CPU緩存,并且處理時需要的CPU周期也更短。
(2)?要確保沒有低估需要存儲的值的范圍,更小是相對與數(shù)據(jù)類型的最大值范圍來講的。
(3)?如果無法確定哪個數(shù)據(jù)類型是最好的,就選擇你認為不會超過范圍的最小類型。
簡單就好(簡單數(shù)據(jù)類型的操作通常需要更短的CPU周期。)
為什么呢?下面有幾個例子說明一下原因。
(1) 整型比字符串操作代價更低,因為字符串集和校對規(guī)則(排序規(guī)則)是的字符比較比整型比較更復(fù)雜。(2) 存儲日期和時間應(yīng)該使用Mysql內(nèi)建的類型(date,time,datatime)。(3) IP地址的存儲應(yīng)該用整型(int)。
盡量避免 NULL (空值)
為什么呢?
(1)?很多表都包含可為NULL的列,就算程序并不需要保存NULL也是如此,這是因為列的默認屬性就是可為NULL。通常情況下最好指定列NOTNULL,除非真的需要存儲NULL。
(2)?如果查詢中包含可為NULL的列,對于Mysql來說是很難優(yōu)化的,因為NULL的列使得索引,索引統(tǒng)計和值比較都更復(fù)雜??蔀镹ULL的列會使用更多的存儲空間,在Mysql里也需要特殊處理。
7.參考文獻
1.龔師兄的小課堂。
2.http://billauer.co.il/blog/2009/03/mysql-datetime-epoch-unix-time/
3.http://www.joda.org/joda-time/quickstart.html
8.更多討論
1.在不同時區(qū)計算時間戳如何獲得當前地區(qū)的正確時間?
A:時間戳可以使用Date工具類,根據(jù)設(shè)置不同時區(qū)轉(zhuǎn)為Date類型。默認為本機所在時區(qū)。
2.TIMESTAMP類型一定會自動更新嗎?
A:DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,可以選擇。
3.joda—time真的好用嗎?
A:誰用誰知道。
感謝大家觀看
PPT:PPT
視頻:視頻
今天的分享就到這里啦,歡迎大家點贊、轉(zhuǎn)發(fā)、留言、拍磚~
技能樹.IT修真院
“我們相信人人都可以成為一個工程師,現(xiàn)在開始,找個師兄,帶你入門,掌控自己學習的節(jié)奏,學習的路上不再迷?!?。
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導??靵砼c我一起學習吧~
小禮物走一走,來簡書關(guān)注我
贊賞支持
作者:blue
鏈接:
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。