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
RiseAgainst
V2EX  ›  MySQL

存储时间的字段用int还是用date,time?

  •  
  •   RiseAgainst · 2012-08-26 13:54:25 +08:00 · 9912 次点击
    这是一个创建于 4268 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了一些程序的数据库,有些用date,datetime类型存储时间
    有些用int存储unix时间戳 这两种区别是什么?实际应用中改怎么选择?
    5 条回复    1970-01-01 08:00:00 +08:00
    Js
        1
    Js  
       2012-08-26 14:12:49 +08:00   ❤️ 1
    signed int和timestamp没区别, 4字节,1970.1.1~2038.1.19

    datetime和上面的区别不大,8字节, 没范围

    date就是纯年月日的日期, 3字节

    time就是纯时分秒的时间, 3字节
    lukydd
        2
    lukydd  
       2012-08-26 18:59:48 +08:00
    没什么特殊需求就用unix时间戳吧...
    AlloVince
        3
    AlloVince  
       2012-08-26 20:02:26 +08:00   ❤️ 1
    datetime和date是人直接可以识别的格式,方便DBA,时间戳还需要再进行一次转换,只是存储空间占用稍小。

    性能上看看这篇评测,使用转换函数进行检索时性能会有一个比较大的下滑,当然你可以选择用非MySQL的方式转换时间,这会带来额外的工作量。
    http://gpshumano.blogs.dri.pt/2009/07/06/mysql-datetime-vs-timestamp-vs-int-performance-and-benchmarking-with-myisam/

    我在项目中一般都会用datetime,时区统一为UTC
    yoyicue
        4
    yoyicue  
       2012-08-26 20:20:46 +08:00   ❤️ 1
    亦在项目中一般使用 datetime,时区统一为 UTC
    一般函数 return 也是 datetime
    优势:
    方便和 pytz 做时区转换
    方便可读的时间加减法
    breestealth
        5
    breestealth  
       2012-08-26 20:58:18 +08:00
    用int型就是典型的时间换空间的做法。而且不能使用数据库提供的时间计算函数,在某些情况下比较麻烦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   894 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:55 · PVG 06:55 · LAX 15:55 · JFK 18:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.