MySQL数据类型-时间和日期

时间和日期是数据库的基本数据类型,也是使用较多的一类数据类型,主要包括时间戳、日期、年等。

日期和日期类型:
  • DATE
  • DATETIME
  • TIME
  • TIMESTAMP
  • YEAR

其中TIME,DATETIME,TIMESTAMP可以精确到微秒。

DATE:
日期类型,范围为’1000-01-01′ 到 ‘9999-12-31’。

DATETIME(fsp):
日期时间,范围为’1000-01-01 00:00:00.000000′ 到 ‘9999-12-31 23:59:59.999999’。fsp表示秒以下的精度,fsp取值为0~6,即最大精确到微秒。

TIME(fsp):
时间,范围为
‘-838:59:59.000000’ 到 ‘838:59:59.000000’。fsp表示秒以下的精度,fsp取值为0~6,即最大精确到微秒。

TIME类型的小时部分最大值超过了24,MySQL这样设计是因为TIME类型不仅表示1天的时间,也能表示两个事件的时间间隔,所以可以大于24,也可以小于24。

TIMESTAMP(fsp):
时间戳,范围为
‘1970-01-01 00:00:01.000000’ UTC 到 ‘2038-01-19 03:14:07.999999’ UTC。fsp表示秒以下的精度,fsp取值为0~6,即最大精确到微秒。

YEAR(4):
年,范围为1901 到 2155。YEAR类型等同于YEAR(4),其中4表示显示宽度,MySQL 8.0.19 版本将废弃显示宽度。

时间日期的零值:

在非严格模式下,日间和日期允许零值存在,但这是不规范的使用,也不建议使用。部分时间日期零值如下:

数据类型 零值
DATE ‘0000-00-00’
TIME ’00:00:00′
DATETIME ‘0000-00-00 00:00:00’
TIMESTAMP ‘0000-00-00 00:00:00’
YEAR ‘0000’
时间日期函数:
  • NOW(),获取当前日期和时间
  • CURRENT_TIMESTAMP,获取当前日期和时间
  • LOCALTIME,获取当前日期和时间
  • LOCALTIME(),获取当前日期和时间
  • LOCALTIMESTAMP,获取当前日期和时间
  • LOCALTIMESTAMP(),获取当前日期和时间
  • YEAR(),获取年
  • MONTH(),获取月
  • DAY(),获取天
  • HOUR(),获取时
  • MINUTE(),获取分
  • SECOND(),获取秒
  • TIME(),获取时间
  • DATE(),获取日期

发表评论