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

标签 mysql datetime timestamp

人们可以在我的网站上购买 1、2、3、4 或 5 年的帐户。我想将这段时间存储在一个表中。这是我的 table (现在):

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:对不起我的英语,我希望我的问题足够清楚!

最佳答案

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

而且你的英语很好!

关于mysql - 数据库中的开始和结束时间戳(unix 时间戳或日期时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36847392/

相关文章:

java - 将 java.time.Instant 转换为没有区域偏移的 java.sql.Timestamp

php - 在 symfony 的帮助下从 Excel 表输入数据库

javascript - Node.js - 来自函数的值返回未定义

python - 当我在 python 中减去两个 datetime 对象时,它只考虑时间而不是一天

mysql - 在 mySQL 中遇到 WHERE DATEDIFF 问题

javascript - 查找时间序列中缺失的季度

timestamp - 将CURRENT_TIMESTAMP分配给TIMESTAMP字段时,plpgsql语法错误

mysql 如何将 varchar(10) 转换为 TIMESTAMP?

mysql - 有没有办法覆盖 @FetchProfile 中的 @LazyCollection(LazyCollectionOption.FALSE) 设置

php - 从今天和最后一个日期的表中获取日期的所有员工