跟王老师学MySQL:MySQL数据类型之日期与时间类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟王老师学MySQL:MySQL数据类型之日期与时间类型相关的知识,希望对你有一定的参考价值。

跟王老师学mysql:MySQL数据类型之日期与时间类型

主讲教师:王少华   QQ群号:483773664

学习内容

YEAR类型的特点及使用

TIME类型的特点及使用

DATE类型的特点及使用

DATETIME类型的特点及使用

TIMESTAMP类型的特点及使用



MySQL表示日期和时间的数据类型有以下几种:

1.YEAR类型

2.TIME类型

3.DATE类型

4.DATETIME类型

5.TIMESTAMP类型

技术分享

一、Year类型

(一)简介

year使用一个字符串来表示年份

MySQL中以YYYY形式显示year类型的值

取值范围:1901-2155

(二)举例

1 、创建一张表

1

2

3

4

5

create table history(

    id int primary key auto_increment,

    title varchar(10),

    y year

);

技术分享

2 插入语正常值

1

insert into history(title,y)values(‘中华人民共和国成立‘,‘1949‘);

技术分享

3、插入小于1901值

1

insert into history(title,y)values(‘史前文明‘,‘1900‘);

技术分享

4、插入2位数的值

1-69 转换为2001-2069

70-99 转换为1970-1999

0 转换为0000

1

2

3

insert into history(title,y)values(‘1-69‘,23);

insert into history(title,y)values(‘70-99‘,85);

insert into history(title,y)values(‘0‘,0);

技术分享

5、0和‘0’的区别

0 表示 0000

‘0‘ 表示2000

1

2

insert into history(title,y)values(‘二个零的区别‘,0);

insert into history(title,y)values(‘二个零的区别‘,‘0‘);

技术分享

二、Date类型

(一)简介

使用4个字符来表示日期

以YYYY-MM-DD来表示日期的值。YYYY表示年份,MM表示月份,DD表示日

Date类型的表示范围:1000-01-01到9999-12-31

(二)举例

1、history表添加一列 d date

1

alter table history add d date;

技术分享

2、输入格式YYYY

可以有多种:

YYYY-MM-DD

YYYYMMDD

YYYY/MM/DD

[email protected]@DD

YYYY.MM.DD

1

2

3

4

5

insert into history(title,d)values(‘YYYY-MM-DD‘,‘2016-6-22‘);

insert into history(title,d)values(‘YYYYMMDD‘,‘20160622‘);

insert into history(title,d)values(‘YYYY/MM/DD‘,‘2016/06/22‘);

insert into history(title,d)values([email protected]@DD‘,[email protected]@22‘);

insert into history(title,d)values(‘YYYY.MM.DD‘,‘2016.06.22‘);

技术分享

3、输入格式YY

规则跟Year类型相同

1-69 2001-2069

70-991970-1999

1

insert into history(title,d)values(‘YY.MM.DD‘,‘15.06.22‘);

技术分享

4 获得当前日期

current_Date

now()

1

2

insert into history(title,d)values(‘当前日期:‘,current_date);

insert into history(title,d)values(‘当前日期:‘,now());

技术分享

三、Time类型

(一)简介

Time类型使用3个字节来表示

MySQL中以HH:MM:SS的形式显示TIME类型的值,其中HH表示时,MM表示分,SS表示秒

表示范围:-838:59:59~838:59:59

(二)赋值

1、添加一列 t time

1

alter table history add t time;

技术分享

2、D HH:MM:SS

D表示天数,小时的值等于(D*24+HH),比如‘2 11:30:59   显示59:30:59

1

insert into history(title,t)values(‘D HH:MM:SS‘,‘2 11:30:50‘);

技术分享

3 HHMMSS

1

insert into history(title,t)values(‘HHMMSS‘,‘131313‘);

技术分享

4 如果分钟和秒钟大于59,会报错

1

insert into history(title,t)values(‘大于59‘,‘126767‘);

技术分享

5 0和’0‘ --> 00:00:00

1

insert into history(title,t)values(‘0‘,‘0‘);

技术分享

6 获得当前系统时间

current_time

now()

1

2

insert into history(title,t)values(‘获得当前时间‘,current_time);

insert into history(title,t)values(‘获得当前时间‘,now());

技术分享

四、DateTime类型

(一)简介

DATETIME类型,从形式上可以看成DATE类型和TIME类型的组合

DateTime类型使用8个字节来表示日期和时间

MySQL中以YYYY-MM-DD HH:MM:SS 的形式来显示DATETIME类型的值

(二)输入

1、添加列

1

alter table history add dt datetime;

技术分享

2 YYYY-MM-DD HH:MM:SS

也可以无分隔符

分隔符可以是多少形式

1

2

insert into history(title,dt)values(‘无分隔符‘,‘20160622200422‘);

insert into history(title,dt)values(‘@分隔符‘,[email protected]@[email protected]+04+22‘);

技术分享


3 YY-MM-DD HH:MM:SS

00-69 -->2000-2069

70--99-->1970-1999

4、0--->0000-00-00 00:00:00

5 获得当前系统日期和时间

1

insert into history(title,dt)values(‘日期和时间‘,now());

技术分享


五、Timestamp类型

(一)简介

TIMESTAMP类型使用4个字节来表示日期和时间

范围:1970-01-01 08:00:01--2038-01-19 11:14:07

显示跟输入DATETIME一样

(二)TIMESTAMP与DateTime的不同之处

1 添加一列

1

alter table history add ts timestamp;

技术分享

2 获得当前系统日期与时间

datetime   now()

timestamp current_timestamp

1

insert into history(title,dt,ts)values(‘获得当前日期与时间‘,now(),current_timestamp);

技术分享

3 对null或无输入的处理

datetime,输入null,存储null;

                  不输入,存储null

timestamp,输入null,存储当前系统日期和时间

                   不输入,存储当前系统日期和时间

1

2

insert into history(title,dt,ts)values(‘null或无输入‘,null,null);

insert into history(title)values(‘null或无输入‘);

技术分享

4 timestamp类型范围小,没有datetime类型范围大

因此,若需要的时间范围比较大,还是选择datetime类型比较安全

六、教学视频

http://edu.51cto.com/course/course_id-6420.html





本文出自 “跟王老师学编程” 博客,请务必保留此出处http://teacherwang.blog.51cto.com/10946447/1795483

以上是关于跟王老师学MySQL:MySQL数据类型之日期与时间类型的主要内容,如果未能解决你的问题,请参考以下文章

跟王老师学MySQL:MySQL数据类型之整数类型

跟王老师学MySQL:MySQL数据类型之字符类型

跟王老师学MySQL:MySQL数据类型之小数类型

跟王老师学MySQL:MySQL数据类型之小数类型

跟王老师学MySQL:MySQL数据类型常见问题及解答

跟王老师学MySQL:MySQL数据类型常见问题及解答