2015-04-25 81 views

回答

0

您可以使用DateTime類型來存儲時間戳&使用mysql中的now()插入當前時間戳,或通過任何您認爲合適的方法獲取日期/時間戳。

2

通常使用TIMESTAMP還是DATETIME數據類型無關緊要。

  • 在舊版本,TIMESTAMP是4個字節並DATETIME爲8
  • 思考的DATETIME作爲時鐘的圖片;想想TIMESTAMP即時在全球範圍內。也就是說,如果您連接到同一個數據庫,但是來自不同的時區,DATETIME看起來是一樣的,但TIMESTAMP將根據時區進行調整。
  • NOW()SELECTing進入PHP等,都兼容兩者。
  • 兩者都被視爲一個字符串,如'2015-04-25 17:09:01'。
  • 由於TIMESTAMP存儲爲32位整數(但您沒有看到),因此它僅限於〜1970-2038。
  • 由於DATETIME是時鐘時間,如果您切換到夏令時/從夏令時切換,每年會有兩次缺失/加班時間。

是的,你可以使用UNIX_TIMESTAMP()並且有一個INT UNSIGNED,但是看看'2015 -...'會更好嗎? (這將是4個字節)。

+0

如果我想自己格式化時間(而不是讓SQL執行此操作,它已預格式化),unix時間戳會更有用嗎? – Creator13

+0

'DATE_FORMAT()'給你很多選擇。它可以與'TIMESTAMP','DATE'和'DATETIME'數據類型一起工作,而不需要使用'FROM_UNIXTIME()'。 –

+0

但是有沒有理由不使用unix時間?是否最好在SQL(使用DATE_FORMAT())而不是PHP(或任何其他語言)內進行格式化?我會說一個unix時間戳更爲普遍,因爲基本上每個語言都知道如何處理這些時間戳。 – Creator13

0

我更喜歡將它存儲爲長期,它總是從時代和代表UTC。這有助於我們迎合不同的本地化和時區方面 - 其他方面我們最終會將值存儲在數據庫服務器默認或JVM默認語言環境中。

相關問題