V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
clockwork1122
V2EX  ›  问与答

请教大家一个数据库时间类型字段设计的问题

  •  
  •   clockwork1122 · 2023-02-15 15:59:35 +08:00 · 482 次点击
    这是一个创建于 677 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在业务,其实很多场景的时间类型只需要到日期就行,但是大家经常都习惯用 datetime 类型呢?
    设置成 datetime 时,在 group 以及搜索时徒增麻烦。
    备注:搜索时,数据量小的时候喜欢直接用 dateformat 把字段和条件统一,数量量多的时候拼接 00:00 以及 23:59 的方式觉得太不美观了。

    备注:自己能想到的点就是干脆两种类型全都要
    6 条回复    2023-02-15 17:09:30 +08:00
    estk
        1
    estk  
       2023-02-15 16:01:01 +08:00
    new Date().toISOString()

    '2023-02-15T08:00:46.758Z'
    echo1937
        2
    echo1937  
       2023-02-15 16:03:24 +08:00 via iPhone
    大部分数据库都支持 DATE 函数,然后再 group 或者搜索即可。
    Chad0000
        3
    Chad0000  
       2023-02-15 16:06:32 +08:00
    如果业务确定的话,我直接使用 Int 类型。比如排课日期,性能肯定比 Date 类型好,也不用担心时区问题。
    Chad0000
        4
    Chad0000  
       2023-02-15 16:06:53 +08:00
    @Chad0000
    直接存 8 位数,比如今天:20230215
    clockwork1122
        5
    clockwork1122  
    OP
       2023-02-15 17:08:41 +08:00
    @echo1937 函数会让索引失效
    clockwork1122
        6
    clockwork1122  
    OP
       2023-02-15 17:09:30 +08:00
    @Chad0000 我这么干过,觉得比大小也方便,但同事说这样有 bug....虽然我没遇到
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.