我之前用的 date ,但是在做日期减法,或者前端传来的范围时间查找,总是要去转换成时间戳,然后再转换成 date 类型,然后才能查询,所以我在想能不能直接存 int 类型的时间戳会比较好。
![]() | 1 shakaraka PRO 我都存时间戳 |
![]() | 2 sgq1128 2022-07-13 11:32:16 +08:00 date ,更直观一点 |
3 luman 2022-07-13 11:34:20 +08:00 时间范围查询直接给 mysql 传字符串也可以查 |
![]() | 4 bruce0 2022-07-13 11:34:58 +08:00 我一般都是用 bigint, 存时间戳, 好处是可以随便比较和计算时间, 不好的地方就是直接看表不知道时间,需要手动计算 |
7 luman 2022-07-13 11:42:02 +08:00 计算时间可以用 date_add |
8 c1273082756 2022-07-13 11:43:31 +08:00 时间戳和 date 都存就完美解决 |
![]() | 9 lix7 2022-07-13 11:43:39 +08:00 永远只存 bigint |
![]() | 11 R18 2022-07-13 11:45:50 +08:00 unsigned int |
![]() | 12 bruce0 2022-07-13 11:47:08 +08:00 @yousabuk 虽然可以 但是感觉有点冗余, 真的要看的话,手动复制找个工具转一下,或者查询的的时候用 sql 函数转一下 |
![]() | 13 R18 2022-07-13 11:47:27 +08:00 时区真的很麻烦, 数据库有时区,程序有时区,系统还有时区。如果不存时间戳,改个时区牵扯的问题太多了。 |
14 Rache1 2022-07-13 12:41:09 +08:00 考虑时区就是用 timestamp ,或者 int 、bigint 。 如果要考虑时区,大于 1970 ,同时要考虑超过 2038 的时间,但小于 2106 ,可以考虑无符号的 int 、如果要超过 2106 年,就要考虑 bigint 了。 1970 以前的时间,也得考虑 date 、datetime 了(不考虑时区的) |
![]() | 15 wbrobot 2022-07-13 12:43:54 +08:00 使用 datetime ,存储逻辑还是 timestamp->int, 可以 SQL 里面写 date 字符串直接比较 |
![]() | 16 cnoder 2022-07-13 12:45:56 +08:00 没有跨时区业务就 datetime,有就时间戳 |
![]() | 17 TAFMT 2022-07-13 13:46:03 +08:00 datetime |
19 hingbong 2022-07-13 14:23:46 +08:00 TIMESTAMP 就行, 反正互联网项目也活不到 2038 年 |
20 r4aAi04Uk2gYWU89 2022-07-13 14:25:09 +08:00 datetime 和 timestamp 直接比较会有什么问题吗?为什么要转时间戳再比较 |
![]() | 21 mmdsun 2022-07-13 18:34:26 +08:00 via iPhone 数据库:datetime Java 代码:LocalDateTime ( Java8 新日期类) 有时区也没事,注解或者 config 可以自己转,spring boot 项目 |
![]() | 22 ragnaroks 2022-07-13 20:12:13 +08:00 int64 时间戳唯一选择,不要给自己找麻烦 |
23 liaohongxing 2022-07-13 22:12:02 +08:00 写 php 我喜欢 int 存, 写 go 我喜欢 datetime 3 位精度带毫秒 |
24 fox0001 2022-07-13 22:15:19 +08:00 datetime 类型,保存 UTC 时区的时间 |
![]() | 25 liudengchn 2022-07-13 23:16:09 +08:00 datetime |
![]() | 26 Ufo666 OP 谢谢大家,已经采取 bigint 了 |
27 nosoxo 2022-08-16 17:03:04 +08:00 @c1273082756 天才 |