type
status
date
slug
summary
tags
category
icon
password
MySQL有5种表示时间值的日期和时间类型,分别为、DATE,TIME,YEAR,DATETIME,TIMESTAMP。但是这些日期时间类型只能支持到秒级别,不支持毫秒、微秒。
类型 | 大小(字节) | 范围 | 格式 | 用途 |
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2037 年某时 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
如果要用来表示年月日,通常用DATE 来表示。
如果要用来表示年月日时分秒,通常用DATETIME 表示。
如果只用来表示时分秒,通常用TIME 来表示。
TIMESTAMP 表示格式 :YYYY-MM-DD HH:MM:SS。
如果只是表示年份,可以用YEAR 来表示。DATE,DATETIME,TIME 是常用三种。
TIMESTAMP 显示的值依赖于时区。MySQL 服务器、操作系统以及客户端连接都有时区设置。
另外,TIMESTAMP 类型的列还有个特性:默认情况下,在 INSERT, UPDATE 数据时,TIMESTAMP 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。
如果需要存储比秒更小粒度的日期和时间值怎么办? MySQL 目前没有提供合适的数据类型,但是可以使用自己的存储格式,可以使用 BIGINT 类型存储微秒级别的时间截或者使用 DOUBLE 存储秒之后的小数部分。
MySQL有5种表示时间值的日期和时间类型,分别为、DATE,TIME,YEAR,DATETIME,TIMESTAMP。但是这些日期时间类型只能支持到秒级别,不支持毫秒、微秒。
类型 | 大小(字节) | 范围 | 格式 | 用途 |
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2037 年某时 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
- 如果要用来表示年月日,通常用DATE 来表示。
- 如果要用来表示年月日时分秒,通常用DATETIME 表示。
- 如果只用来表示时分秒,通常用TIME 来表示。
- TIMESTAMP 表示格式 :YYYY-MM-DD HH:MM:SS。
- 如果只是表示年份,可以用YEAR 来表示。DATE,DATETIME,TIME 是常用三种。
TIMESTAMP 类型的特殊说明:
- TIMESTAMP 显示的值依赖于时区。MySQL 服务器、操作系统以及客户端连接都有时区设置。
- 另外,TIMESTAMP 类型的列还有个特性:默认情况下,在 INSERT, UPDATE 数据时,TIMESTAMP 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。
- 如果需要存储比秒更小粒度的日期和时间值怎么办? MySQL 目前没有提供合适的数据类型,但是可以使用自己的存储格式,可以使用 BIGINT 类型存储微秒级别的时间截或者使用 DOUBLE 存储秒之后的小数部分。