為什么要用long代替date類型?

大家好,我是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)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,302評論 6 13
  • 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是存儲數(shù)據(jù)的集合的單獨的應(yīng)用程序。每個數(shù)據(jù)庫具有一個或多個不同的API,用于創(chuàng)建,訪問,管理...
    chen_000閱讀 4,124評論 0 19
  • SQL SELECT 語句 一、查詢SQL SELECT 語法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 5,992評論 0 33
  • 在MySQL 5.7版本之前,且在MySQL 5.6.6版本之后(explicit_defaults_for_ti...
    張偉科閱讀 18,063評論 0 1
  • 大家好,今天我看了一個豆莢里的五粒豆這篇故事。故事的第五粒小豌豆,毫無奢求,只要為別人做一件好事就心滿意足了,他用...
    徐藝祎閱讀 303評論 0 0

友情鏈接更多精彩內(nèi)容