2016-04-25 63 views
1

人們可以在我的網站上購買一個帳戶1,2,3,4或5年。我想把這段時間存放在一張桌子裏。這是我的表(現在):數據庫中的開始和結束時間戳(unix時間戳或日期時間)

table: users 

- user_id  int(11) 
- username  varchar(48) 
- password  varchar(48) 
- time_start  int(11) 
- time_end  int(11) 

當我添加一條記錄,我添加了TIME_START和TIME_END有:

UNIX_TIMESTAMP(NOW())/UNIX_TIMESTAMP(NOW() + INTERVAL 1/2/3/4/5 year) 

這是最好的方法?用UNIX時間戳存儲這些數據。或者我應該只使用常規的日期時間字段?將UNIX時間戳存儲在整數字段中是一個好主意嗎?並且是足夠長的11?我已經測試過了,它可以工作。我之所以選擇它是因爲UNIX時間戳是UTC,我在我的網站上使用了「時間前」功能(它顯示的時間類似'2秒前','3分鐘前',...如果我將它存儲在日期時間字段這一切都出了問題...)

我在讀2038年的問題(https://en.wikipedia.org/wiki/Year_2038_problem)。這對我來說會是一個問題嗎?

與問候, 山姆

PS:對不起,我的英語,我希望我的問題是非常明顯的!

+0

可能是[我應該使用字段'datetime'還是'timestamp'?]的副本(http://stackoverflow.com/questions/409286/should-i-use-field-datetime-or-time-stamp) –

回答

0

如果您當前的設置實際上持續了很長時間(不太可能),並且在我看來,使事情變得非常容易處理並且易於閱讀,那麼作爲日期時間存儲對於'2038問題'會更好。你有沒有理由不願意使用日期時間?

而你的英語很好!