首頁>Club>
timestamp, datetime,哪一個是更好的選擇?
37
回覆列表
  • 1 # 程式設計師小助手

    引言

    今天我們把知識的焦點投向資料庫方面,因為資料庫是應用程式的基石,是一切生產的動力。先說一個小小的知識點,在儲存日期時間時,應該選用 timestamp 時間戳型別,還是應該用 datettime 型別?

    兩者有何不同,效率如何,以及各自的優劣。

    學習時間

    MySQL中的 timestamp 通常用於跟蹤記錄的更改,並且通常在每次記錄更改時進行更新。如果要儲存特定值,則應使用 datetime 欄位。

    如果你在這兩者之間猶豫不決,那就請優先使用時間戳。買搜狗中提供了。內建的函式用於時間,日期格式轉換和計算,使用起來非常方便。比如日期時間差計算:

    SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)

    或者是對UNIX時間戳的格式轉換:

    SELECT UNIX_TIMESTAMP(my_datetime)

    如果要使用PHP對記錄進行查詢,則可以很容易地將值的格式更改為UNIX時間戳。

    一個重要的區別是,DATETIME表示日期(如在日曆中查詢),和時間(如在時鐘上可以看到),而TIMESTAMP表示明確定義的時間點。

    如果應用程式處理時區,那麼這可能非常重要。 比如多久以前是"2019-09-01 16:31:00"? 這取決於你所在的時區。對我來說,這只是幾秒鐘前,對你來說,它可能代表將來的時間。

    相應地,如果我說自“ 1970-01-01 00:00:00 UTC”以來的1283351460秒,那麼您確切地知道我在說什麼時間點。

    深入學習

    時間戳 timestamp 在系統失去改變之後,會自動變化。這在程式生產資料時,會有影響。我們透過例子來說明。

    首先在系統變數中檢視 time_zone 相關配置。

    建立新表並寫入兩個數值。

    檢視寫入的資料。

    修改時區,再次查看錶內的值。我們發現,timestamp 型別的欄位時間隨著時區的改變發生了改變。而 datetime 欄位則不會改變。

    寫在最後

    本文透過對比 timestamp & datetime 欄位的優劣和使用場景進行了闡述,並使用例子展示 timestamp 的便捷性,和隱藏的問題。

    Happy coding :_)

  • 2 # cr180

    用int 10,存放十位時間戳就可以了,不夠就bigint,因為判斷、比較、轉換、時區處理都很方便,效能也要好點,在我的開發生涯裡從來沒有日期的概念,都是時間戳。如果需要在db看直觀的日期,另外開欄位給他

  • 中秋節和大豐收的關聯?
  • 連鎖門店的激勵方法有哪幾種?