mysql 数据库存时间最好是时间戳还是格式的时间

发布于 2022-08-29 20:10:10 字数 149 浏览 19 评论 0

mysql 数据库存时间最好是时间戳还是格式的时间

我理解的时间戳格式是这样的:1409556216984 如果存这个,用int类型还转不下呀,应该存什么类型,长度

如果是时间格式,前台还需要转换,是不是性能不佳

后端是:java

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

2022-09-05 20:10:10

虽然我认为讨论技术问题时,宣扬“自己的系统实际表现有多牛(所以别人也一定要这么做)”不是什么好的论调……但我必须认同一点:这个问题的权衡还真就不是从性能上考虑的。时间戳和字面时间的互转只是简单的计算,所消耗的资源远远达不到引发问题的地步。

使用时间戳的唯一考虑是:你的应用是否涉及多时区,时间数据是否和时区相关。如果回答“是”,那么就必须使用时间戳,没有任何第二方案。

只有时间戳表示的时间是准确、恒定的,就连时间+日期+时区也不行——时区这玩意儿可不是恒定不变的……

其余的都不是什么重要的考虑,自己喜欢就行。

一般认为坚持使用时间戳总是好的,在程序设计中只会提供便利,不会引入坏处。至于查看数据时暴露时间戳原值,那是显示环节的不完备(或故意设计),而不是用时间戳用错了,切勿张冠李戴抹黑好东西。

  • 日期的字符串-时间互转、计算、比较及时区转换,请使用后台语言中提供的相关类,不自己造轮子就可以。
  • 可以略微注意2038年问题的陷阱。对于MySQL而言,如果存时间戳请使用timestamp或bigint,而不要使用int。
埋情葬爱 2022-09-05 20:10:10

这个问题是咱们程序员典型的架构权衡问题,甚至可以说钻牛角尖(当然有时候钻牛角尖不是不好)。
题主,其实无论你存时间戳还是用mysql的datetime,甚至是存字符串,这基本上都不会造成系统瓶颈,你应该把80%的时间用在解决系统性能消耗占比80%的问题上去。

我们阿里的系统,能够支撑单日亿级的写操作,读是多少大家更可以YY,而其中使用mysql的系统,时间就用的datetime,所以你完全不用担心性能的问题了。

用datetime还有个显而易见的好处,可读性高。1409556216984,这个时间戳没有人能看出来是什么时间,对未来问题排查和定位也会加大复杂度。

夏末 2022-09-05 20:10:10

datatime
对应java.sql.Timestamp

晌融 2022-09-05 20:10:10

当然存成时间戳,除非你除了读取之外不将它作它用。

你只想到了把时间戳格式化成字符串花 CPU,就没想到你存成字符串花磁盘空间么?而且你不用取某个时间段之内的数据,或者比较两个数据的时间么?

梦年海沫深 2022-09-05 20:10:10

我比较倾向与存的时候用 格式的时间, 然后取的时候后台可以在controller层使用jodaTime的getMillis()函数取到毫秒,然后前端用JS的Date()去封装,便可以根据客户端所在的时区显示相应的时间。(这么便利的就可以完成日期的国际化主要得益于:1.服务器存的是时间戳。2.客户端js)

风流物 2022-09-05 20:10:10

存成时间戳比较好,你在页面上可能需要不同格式化的时间,这时候就比较方便了。存的时候存timestamp类型。

挖个坑埋了你 2022-09-05 20:10:10

时间戳,绝对利大于弊~只有好处,没有坏处。

生死何惧 2022-09-05 20:10:10

存时间戳,仿便转换,建议

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文