mysql 数据库存日期一般用什么类型? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
Ufo666
V2EX    MySQL

mysql 数据库存日期一般用什么类型?

  •  
  •   Ufo666 2022-07-13 11:27:12 +08:00 4744 次点击
    这是一个创建于 1191 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我之前用的 date ,但是在做日期减法,或者前端传来的范围时间查找,总是要去转换成时间戳,然后再转换成 date 类型,然后才能查询,所以我在想能不能直接存 int 类型的时间戳会比较好。

    27 条回复    2022-08-16 17:03:04 +08:00
    shakaraka
        1
    shakaraka  
    PRO
       2022-07-13 11:29:55 +08:00
    我都存时间戳
    sgq1128
        2
    sgq1128  
       2022-07-13 11:32:16 +08:00
    date ,更直观一点
    luman
        3
    luman  
       2022-07-13 11:34:20 +08:00
    时间范围查询直接给 mysql 传字符串也可以查
    bruce0
        4
    bruce0  
       2022-07-13 11:34:58 +08:00
    我一般都是用 bigint, 存时间戳, 好处是可以随便比较和计算时间, 不好的地方就是直接看表不知道时间,需要手动计算
    yousabuk
        5
    yousabuk  
       2022-07-13 11:38:08 +08:00 via iPhone
    @bruce0 这个再增加一列就很好了
    Ufo666
        6
    Ufo666  
    OP
       2022-07-13 11:39:49 +08:00
    @wunonglin 时间戳用 int 还是 timestamp
    luman
        7
    luman  
       2022-07-13 11:42:02 +08:00
    计算时间可以用 date_add
    c1273082756
        8
    c1273082756  
       2022-07-13 11:43:31 +08:00
    时间戳和 date 都存就完美解决
    lix7
        9
    lix7  
       2022-07-13 11:43:39 +08:00
    永远只存 bigint
    shakaraka
        10
    shakaraka  
    PRO
       2022-07-13 11:44:54 +08:00
    @Ufo666 #6 bigint
    R18
        11
    R18  
       2022-07-13 11:45:50 +08:00
    unsigned int
    bruce0
        12
    bruce0  
       2022-07-13 11:47:08 +08:00
    @yousabuk 虽然可以 但是感觉有点冗余, 真的要看的话,手动复制找个工具转一下,或者查询的的时候用 sql 函数转一下
    R18
        13
    R18  
       2022-07-13 11:47:27 +08:00
    时区真的很麻烦, 数据库有时区,程序有时区,系统还有时区。如果不存时间戳,改个时区牵扯的问题太多了。
    Rache1
        14
    Rache1  
       2022-07-13 12:41:09 +08:00
    考虑时区就是用 timestamp ,或者 int 、bigint 。

    如果要考虑时区,大于 1970 ,同时要考虑超过 2038 的时间,但小于 2106 ,可以考虑无符号的 int 、如果要超过 2106 年,就要考虑 bigint 了。

    1970 以前的时间,也得考虑 date 、datetime 了(不考虑时区的)
    wbrobot
        15
    wbrobot  
       2022-07-13 12:43:54 +08:00
    使用 datetime ,存储逻辑还是 timestamp->int, 可以 SQL 里面写 date 字符串直接比较
    cnoder
        16
    cnoder  
       2022-07-13 12:45:56 +08:00
    没有跨时区业务就 datetime,有就时间戳
    TAFMT
        17
    TAFMT  
       2022-07-13 13:46:03 +08:00
    datetime
    keppelfei
        18
    keppelfei  
       2022-07-13 13:48:27 +08:00
    @bruce0 有没有什么软件可以自动转一下?反正都是函数计算,如果有软件支持自动转化,那就美了。
    hingbong
        19
    hingbong  
       2022-07-13 14:23:46 +08:00
    TIMESTAMP 就行, 反正互联网项目也活不到 2038 年
    r4aAi04Uk2gYWU89
        20
    r4aAi04Uk2gYWU89  
       2022-07-13 14:25:09 +08:00
    datetime 和 timestamp 直接比较会有什么问题吗?为什么要转时间戳再比较
    mmdsun
        21
    mmdsun  
       2022-07-13 18:34:26 +08:00 via iPhone
    数据库:datetime
    Java 代码:LocalDateTime ( Java8 新日期类)

    有时区也没事,注解或者 config 可以自己转,spring boot 项目
    ragnaroks
        22
    ragnaroks  
       2022-07-13 20:12:13 +08:00
    int64 时间戳唯一选择,不要给自己找麻烦
    liaohongxing
        23
    liaohongxing  
       2022-07-13 22:12:02 +08:00
    写 php 我喜欢 int 存, 写 go 我喜欢 datetime 3 位精度带毫秒
    fox0001
        24
    fox0001  
       2022-07-13 22:15:19 +08:00
    datetime 类型,保存 UTC 时区的时间
    liudengchn
        25
    liudengchn  
       2022-07-13 23:16:09 +08:00
    datetime
    Ufo666
        26
    Ufo666  
    OP
       2022-07-15 10:39:25 +08:00
    谢谢大家,已经采取 bigint 了
    nosoxo
        27
    nosoxo  
       2022-08-16 17:03:04 +08:00
    @c1273082756 天才
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     905 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:03 PVG 04:03 LAX 13:03 JFK 16:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86