clockwork1122
V2EX  ›  问与答

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

  •  
  •   clockwork1122 · Feb 15, 2023 · 817 views
    This topic created in 1186 days ago, the information mentioned may be changed or developed.
    在业务,其实很多场景的时间类型只需要到日期就行,但是大家经常都习惯用 datetime 类型呢?
    设置成 datetime 时,在 group 以及搜索时徒增麻烦。
    备注:搜索时,数据量小的时候喜欢直接用 dateformat 把字段和条件统一,数量量多的时候拼接 00:00 以及 23:59 的方式觉得太不美观了。

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

    '2023-02-15T08:00:46.758Z'
    echo1937
        2
    echo1937  
       Feb 15, 2023 via iPhone
    大部分数据库都支持 DATE 函数,然后再 group 或者搜索即可。
    ktqFDx9m2Bvfq3y4
        3
    ktqFDx9m2Bvfq3y4  
       Feb 15, 2023
    如果业务确定的话,我直接使用 Int 类型。比如排课日期,性能肯定比 Date 类型好,也不用担心时区问题。
    ktqFDx9m2Bvfq3y4
        4
    ktqFDx9m2Bvfq3y4  
       Feb 15, 2023
    @Chad0000
    直接存 8 位数,比如今天:20230215
    clockwork1122
        5
    clockwork1122  
    OP
       Feb 15, 2023
    @echo1937 函数会让索引失效
    clockwork1122
        6
    clockwork1122  
    OP
       Feb 15, 2023
    @Chad0000 我这么干过,觉得比大小也方便,但同事说这样有 bug....虽然我没遇到
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2863 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 592ms · UTC 12:25 · PVG 20:25 · LAX 05:25 · JFK 08:25
    ♥ Do have faith in what you're doing.