簡體   English   中英

MySQL存儲持續時間 - 數據類型?

[英]MySQL storing duration time - datatype?

我需要計算用戶在網站上花費的時間。 注銷時間和登錄時間之間的區別給我一些類似“X先生花了4小時43分鍾在線”的內容。 所以為了存儲4小時43分鍾我聲明它是這樣的: duration時間NOT NULL

這是有效的還是更好的存儲方式? 我需要存儲在DB中,因為我有其他計算我需要將其用於+其他用例。

將其存儲為整數秒將是最佳方式。

  • UPDATE將是簡潔的 - 即duration = duration + $increment
  • 正如Tristram所指出的,使用TIME字段存在限制 - 例如“ TIME值可能在'-838:59:59''838:59:59'
  • 日/小時/分鍾/秒顯示格式不會被硬編碼。
  • 使用整數“秒數”字段時,執行其他計算幾乎肯定會更清楚。

我不會使用時間,因為你將限制在24小時。 最簡單的方法是以分鍾(或秒為單位)存儲整數,具體取決於您需要的分辨率。

考慮將兩個值存儲為UNIX-epoch-delta。

我通常更喜歡使用帶符號(64b)bigint(第二個分辨率),或(帶符號)(64b)雙(如果需要小數秒),或帶符號(32b)int(如果縮小到每分鍾或每小時) 。

在列的名稱中使單元顯式化,例如使用“_epoch_minutely”等后綴,例如:“started_epoch_minutely”,“finished_epoch_minutely”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM