最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何選擇合適的MySQL日期時間類型來存儲你的時間

 更新時間:2020年08月07日 09:37:17   作者:zhuzhichao  
這篇文章主要介紹了如何選擇合適的MySQL日期時間類型來存儲你的時間,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

構建數(shù)據(jù)庫寫程序避免不了使用日期和時間,對于數(shù)據(jù)庫來說,有多種日期時間字段可供選擇,如 timestamp 和 datetime 以及使用 int 來存儲 unix timestamp。

不僅新手,包括一些有經驗的程序員還是比較迷茫,究竟我該用哪種類型來存儲日期時間呢?

那我們就一步一步來分析他們的特點,這樣我們根據(jù)自己的需求選擇合適的字段類型來存儲 (優(yōu)點和缺點是比較出來的  , 跟父母從小喜歡拿鄰居小孩子跟自己比一樣的)

datetime 和 timestamp

  1. datetime 更像日歷上面的時間和你手表的時間的結合,就是指具體某個時間。
  2. timestamp 更適合來記錄時間,比如我在東八區(qū)時間現(xiàn)在是 2016-08-02 10:35:52, 你在日本(東九區(qū)此時時間為 2016-08-02 11:35:52),我和你在聊天,數(shù)據(jù)庫記錄了時間,取出來之后,對于我來說時間是 2016-08-02 10:35:52,對于日本的你來說就是 2016-08-02 11:35:52。所以就不用考慮時區(qū)的計算了。
  3. 時間范圍是 timestamp 硬傷(1970-2038),當然 datetime (1000-9999)也記錄不了劉備什么時候出生(161 年)。

timestamp 和 UNIX timestamp

  1. 顯示直觀,出問題了便于排錯,比好多很長的 int 數(shù)字好看多了
  2. int 是從 1970 年開始累加的,但是 int 支持的范圍是 1901-12-13 到 2038-01-19 03:14:07,如果需要更大的范圍需要設置為 bigInt。但是這個時間不包含毫秒,如果需要毫秒,還需要定義為浮點數(shù)。datetime 和 timestamp 原生自帶 6 位的微秒。
  3. timestamp 是自帶時區(qū)轉換的,同上面的第 2 項。
  4. 用戶前端輸入的時間一般都是日期類型,如果存儲 int 還需要存前取后處理

總結:

  1. timestamp 記錄經常變化的更新 / 創(chuàng)建 / 發(fā)布 / 日志時間 / 購買時間 / 登錄時間 / 注冊時間等,并且是近來的時間,夠用,時區(qū)自動處理,比如說做海外購或者業(yè)務可能拓展到海外
  2. datetime 記錄固定時間如服務器執(zhí)行計劃任務時間 / 健身鍛煉計劃時間等,在任何時區(qū)都是需要一個固定的時間要做某個事情。超出 timestamp 的時間,如果需要時區(qū)必須記得時區(qū)處理
  3. UNIX timestamps 使用起來并不是很方便,至于說比較取范圍什么的,timestamp 和 datetime 都能干。
  4. 如果你不考慮時區(qū),或者有自己一套的時區(qū)方案,隨意了,喜歡哪個上哪個了
  5. laravel 是國際化設計的框架,為了程序員方便、符合數(shù)據(jù)庫設計標準,所以 created_at updated_at 使用了 timestamp 是無可厚非的。
  6. 有沒有一個時間類型即解決了范圍、時區(qū)的問題?這是不可能的,不是還有 tinyInt BigInt 嗎?取自己所需,并且 MySQL 是允許數(shù)據(jù)庫字段變更的。
  7. 生日可以使用多個字段來存儲,比如 year/month/day,這樣就可以很方便的找到某天過生日的用戶 (User::where(['month' => 8, 'day' => 12])->get())

構建項目的時候需要認真思考一下,自己的業(yè)務場景究竟用哪種更適合。選哪個?需求來定。

到此這篇關于如何選擇合適的MySQL日期時間類型來存儲你的時間的文章就介紹到這了,更多相關MySQL日期時間類型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • mysql Innodb表空間卸載、遷移、裝載的使用方法

    mysql Innodb表空間卸載、遷移、裝載的使用方法

    從MySQL的Innodb特性中我們知道,Inndob的表空間有共享和獨享的特點,如果是共享的。則默認會把表空間存放在一個文件中(ibdata1),當開啟獨享表空間參數(shù)Innodb_file_per_table時,會為每個Innodb表創(chuàng)建一個.ibd的文件。文章討論在獨享表空間卸載、裝載、遷移Innodb表的情況
    2013-11-11
  • MySQL DNS的使用過程詳細分析

    MySQL DNS的使用過程詳細分析

    當 mysql 客戶端連接 mysql 服務器 (進程為:mysqld),mysqld 會創(chuàng)建一個新的線程來處理該請求。該線程先檢查是否主機名在主機名緩存中
    2012-11-11
  • Mysql避免重復插入數(shù)據(jù)的4種方式

    Mysql避免重復插入數(shù)據(jù)的4種方式

    這篇文章主要介紹了Mysql避免重復插入數(shù)據(jù)的4種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • MySQL數(shù)據(jù)類型和常用字段屬性總結

    MySQL數(shù)據(jù)類型和常用字段屬性總結

    這篇文章主要介紹了MySQL數(shù)據(jù)類型和常用字段屬性總結,本文總結了日期和時間數(shù)據(jù)類型、數(shù)值數(shù)據(jù)類型、字符串數(shù)據(jù)類型等,需要的朋友可以參考下
    2014-09-09
  • MySQL部署時提示Table mysql.plugin doesn’t exist的解決方法

    MySQL部署時提示Table mysql.plugin doesn’t exist的解決方法

    這篇文章主要介紹了MySQL部署時Table mysql.plugin doesn't exist的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MySQL修改數(shù)據(jù)表存儲引擎的3種方法介紹

    MySQL修改數(shù)據(jù)表存儲引擎的3種方法介紹

    這篇文章主要介紹了MySQL修改數(shù)據(jù)表存儲引擎的3種方法介紹,分別是直接修改、導出導入、創(chuàng)建插入3種方法,需要的朋友可以參考下
    2014-07-07
  • linux實現(xiàn)mysql數(shù)據(jù)庫每天自動備份定時備份

    linux實現(xiàn)mysql數(shù)據(jù)庫每天自動備份定時備份

    備份是容災的基礎,是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導致數(shù)據(jù)丟失,而將全部或部分數(shù)據(jù)集合從應用主機的硬盤或陣列復制到其它的存儲介質的過程。這篇文章主要介紹了linux實現(xiàn)mysql數(shù)據(jù)庫每天自動備份定時備份,需要的朋友可以參考下
    2017-09-09
  • MySql批量刪除多個表的方法

    MySql批量刪除多個表的方法

    本文主要介紹了MySql批量刪除多個表的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • MySQL數(shù)據(jù)庫的觸發(fā)器的使用

    MySQL數(shù)據(jù)庫的觸發(fā)器的使用

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的觸發(fā)器的使用,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-09-09
  • Linux下mysql 5.6.17安裝圖文教程詳細版

    Linux下mysql 5.6.17安裝圖文教程詳細版

    這篇文章主要為大家詳細介紹了Linux下mysql 5.6.17安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論

怀来县| 衡南县| 安徽省| 鄂托克旗| 德保县| 高安市| 诸城市| 陵川县| 宝兴县| 太仓市| 紫金县| 岳阳市| 恭城| 尖扎县| 济阳县| 镇宁| 崇义县| 青龙| 海宁市| 常德市| 体育| 灯塔市| 惠东县| 申扎县| 堆龙德庆县| 厦门市| 惠州市| 黎平县| 长阳| 武邑县| 盐城市| 九台市| 平舆县| 蓝山县| 常德市| 达拉特旗| 凌源市| 贡山| 中西区| 霸州市| 乌苏市|