数据库中的开始和结束时间戳(unix时间戳或日期时间)

时间:2016-04-25 17:37:45

标签: mysql datetime timestamp

人们可以在我的网站上购买账户1年,2年,3年,4年或5年。我想把这段时间存放在一张桌子里。这是我的表(现在):

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为单位的,而且我使用的是#time;之前的'功能在我的网站上(它显示的时间类似于' 2秒前',' 3分钟前',...如果我将它存储在日期时间字段中,那么一切都会出错.. 。)

我正在阅读2038年的问题(https://en.wikipedia.org/wiki/Year_2038_problem)。这对我来说会成为一个问题吗?

关于, 萨姆

PS:对不起我的英语,我希望我的问题很清楚!

1 个答案:

答案 0 :(得分:0)

作为日期时间存储对于' 2038问题会更好,'如果你当前的设置实际上持续那么久(不太可能),并且在我看来,使事情很容易处理,并且易于人类阅读。您是否有理由犹豫不决使用约会时间?

你的英语很好!