命令行操作MySQL - 日期和时间类型

这是命令行操作MySQL数据库系列博客的第六篇,今天这篇博客记录日期和时间类型的用法。


日期与时间类型是为了方便在数据库中存储日期和时间而设计的,数据库有多种表示日期和时间的数据类型。其中,year类型表示年,date类型表示日期,time类型表示时间,datetime和timestamp表示日期和时间。下面从这5种日期与时间类型的字节数、取值范围和零值等方面进行对比,如下表所示。

类型 字节数 取值范围 零值
year 1 1901 ~ 2155 0000
date 4 1000-01-01 ~ 9999-12-31 0000-00-00
time 3 -838:59:59 ~ 838:59:59 00:00:00
datetime 8 1000-01-01 00:00:00 ~ 999-12-21 23:59:59 0000-00-00 00:00:00
timestamp 4 1970-01-01 08:00:01 ~ 2038-01-19 11:14:07 0000-00-00 00:00:00

每种日期与时间类型都有一个有效范围。如果插入的值超过了这个范围,系统就会报错,并将零值插入到数据库中。不同的日期与时间类型均有不同的零值.

插入日期时间,日期年月日和时间时分秒可以使用 “ : - _ / ” 中的任意字符来分隔,如果单独插入时间,则会报错!!!

建议年份使用‘-’或者‘/’作为分割符,时间统一使用‘:’作为分隔符。

例:

创建表并插入数据:
命令行操作MySQL - 日期和时间类型

查询数据:
命令行操作MySQL - 日期和时间类型

也可以通过mysql 本身提供的时间函数获取:
常用的时间函数:

  1. curdate() - 获得当前的date, 可直接插入date类型中.
  2. now() - 获得当前的datetime, 可直接插入datetime和timestamp类型中.
  3. time() - 获取参数给定时间串中的时分秒,可直接插入time类型中.
  4. year() - 获取参数给定时间串中的年份,可直接插入year类型中.
  5. month() 、day()、hour()、minute()、second() 获取参数给定时间串中的月、日、时、分、秒值.

例:
命令行操作MySQL - 日期和时间类型


总结:
其实只要注意文中黄色标注内容,和例子,和常用的时间函数,这三个部分,日期和时间类型也不过就是如此,挺好理解的,多看下例子,对照敲一遍应该也差不多了!