这是命令行操作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 8 日历表 日期mysql_mysql

查询数据:

mysql 8 日历表 日期mysql_数据库_02

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

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

例:

mysql 8 日历表 日期mysql_直接插入_03


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