TOC

MySQL 时间

几种形式

  1. 字符串,比如:
    • varchar(14),存:yyyymmddHHMMSS 格式
    • varchar(19),存:yyyy-mm-dd HH:MM:SS 格式
    • varchar(23),存:yyyy-mm-dd HH:MM:SS.fff 格式
    • varchar(26),存:yyyy-mm-dd HH:MM:SS.ffffff 格式
    • varchar(24),存:yyyy-mm-ddTHH:MM:SS+0800yyyy-mm-dd HH:MM:SS 0800 格式
  2. 整形数
    • int 1970 - 2038
      time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime((1 << 31) - 1))
      # 2038-01-19 03:14:07
      
      - int unsigned 1970 - 2106
      time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime((1 << 32) - 1))
      # 2106-02-07 06:28:15
      
      - bigint 可以用到世界毁灭
    • 注意:也可以任意指定一个时间为起点,比如 2020-01-01 00:00:00
  3. TIMESTAMP 类型
    • 相当于上面的 int 类型,2038 问题
  4. DATETIME 类型

PS: DATE, TIME, YEAR 三种类型:

  • DATE
  • TIME
  • YEAR

比较

1. 存储效率

2. 时间比较

3. 是否方便索引