比如存创建时间使用 int 还是用 datetime 或 timestamp ?
整形的默认值可以是 0,datetime 或 timestamp 的默认值必须是 0000-00-00 00:00:00
整形的在程序里面比较起来更容易些,后者可能需要根据语言的具体类型进行比较,感觉不是那么方便。
大家开发中都是怎么处理的呢?
比如存创建时间使用 int 还是用 datetime 或 timestamp ?
整形的默认值可以是 0,datetime 或 timestamp 的默认值必须是 0000-00-00 00:00:00
整形的在程序里面比较起来更容易些,后者可能需要根据语言的具体类型进行比较,感觉不是那么方便。
大家开发中都是怎么处理的呢?
|
loadingApr 17, 2020 via Android
1
如果不存在人工打开数据库修改用 int 存时间戳。
|
|
2
时间字段包含时区
如果时间使用整形存,创造时间类型干嘛? 其他的自己悟 |
|
ragnaroksApr 17, 2020
3
Int64,操作方便,过滤查询快速,而且时间戳时区无关
|
|
luckyrayyyApr 17, 2020
4
时间类型,数据库费劲吧啦的弄出来这个类型 ,肯定也做了很多优化,没特殊需求用他们推荐的最好。
|
|
hooopoApr 17, 2020 via Android
5
datetime
|
|
ErroadApr 17, 2020
6
都用过,不好说,看具体用途。之前遇到过 timestamp 写入时时区出现 Bug 导致时间出错,后来就谨慎了些
|
|
KairyuuApr 17, 2020
7
int
|
|
purensongApr 17, 2020
8
timestamp
|
|
polytheneApr 17, 2020
9
据我所知,mysql 的时间类型是没有时区的?一个时间存进去,再拿出来,时区信息就丢失了
|
|
wangyzjApr 17, 2020
10
其实我觉得用 int 和 datetime 都可以
可能更多地是习惯问题 但是我有一个问题 就是时间排序或者作为条件查询的时候 int 和 datetime 有多大区别 哪个效率更好? |
|
11
当性能和存取效率为首要考虑情况下,使用 int64,磁盘占用小,插入检查校验快,索引快。比如上亿条数据要保证插入性能的情况。
当数据量不大方便性为首要考虑情况下,用时间类型,这样数据库提供的时间函数和转换格式,提取部分等功能就可以很方便,特别是计算两个时间差的时候日期时间类型用 DATEDIFF 很省事。 |
|
1ffreeApr 17, 2020
12
mysql TimeStamp 类型 CST 时区有个坑
|
|
FelldeadbirdApr 17, 2020
13
一直用 int 。等到 2038 年出问题,我写的程序还在跑不跑都成问题了。
|
|
passMeByApr 17, 2020
14
mysql 的 timestamp 能不用就不用,这相当于一个定时炸弹。
|
|
gemini767Apr 17, 2020
15
正规操作都是 datetime
|
|
xcstreamApr 17, 2020
17
如果要在数据库里查询的计算的话 datetime
如果只是保存和读取的话 int |
|
MeteorCatApr 17, 2020 via Android
19
我最怕 datetime,因为以前一个项目一堆 default null
|
|
bowser1701Apr 17, 2020 via iPhone
20
@1ffree 那就不用 cst 呗。
|
|
daozhihunApr 18, 2020
21
看需求。
如果数据量不大,或者有一些报表需求的话,用 datetime 比较方便。 如果只是存一下,例如随便记录一下操作的时间,一般不会去看,那可以用 int |
|
AresxueApr 18, 2020
22
有人工查看时间进行数据捞取的操作就 timestamp 和 datetime,时间要求范围不大的话就 timestamp,注意时间一定要给默认值,不然加索引的索引可能会失效,没有人工查看操作直接 int 性能最佳计算也方便
|