MySQL数据库的基本数据类型(3)

linuxidc_image014

可以看到,第二次在插入记录的时候,数据超出了范围,原因是107010的分钟部分超过了60,分钟部分是不会超过60的,查看结果:

SELECT * FROM tmp4;

linuxidc_image015

由结果可以看到,’101112’被转换为10:11:12;111213被转换为11:12:13;’0’被转换为00:00:00;107010因为是不合法的值,因此插入00:00:00。

也可以使用系统日期函数向TIME字段列插入值。

向tmp4表中插入系统当前时间,SQL语句如下:

首先删除表中的数据:

DELETE FROM tmp4;

向表中插入数据:

INSERT INTO tmp4 values (CURRENT_TIME) ,(NOW());

查看结果:

SELECT * FROM tmp4;

linuxidc_image016

由结果可以看到,获取系统当前的日期时间插入到TIME类型列,都是系统当前的日期时间值。

DATE类型数据测试案例:

创建数据表tmp5,定义数据类型为DATE的字段d,向表中插入“YYYY-MM-DD”和“YYYYMMDD”字符串格式日期,SQL语句如下:

首先创建表tmp5:

CREATE TABLE tmp5(d DATE);

向表中插入“YYYY-MM-DD”和“YYYYMMDD”格式日期:

INSERT INTO tmp5 values('1998-08-08'),('19980808'),('20101010');

查看插入结果:

SELECT * FROM tmp5;

可以看到,各个不同类型的日期值都正确的插入到了数据表中。DATE占用3字节,可显示的日期范围为“1000-01-01”到“9999-12-31”。

向tmp5表中插入“YY-MM-DD”和“YYMMDD”字符串格式日期,SQL语句如下:

首先删除表中的数据:

DELETE FROM tmp5;

向表中插入“YY-MM-DD”和“YYMMDD”格式日期:

INSERT INTO tmp5 values ('99-09-09'),( '990909'), ('000101') ,('111111');

查看插入结果:

SELECT * FROM tmp5;

linuxidc_image018

对于插入的最后一个值,为什么不是1911-11-11或者2111-11-11之类的值呢?可以看到数据库将其视为离现在最近的一个年份,这可能不是一个非常好的习惯。如果没有特别的条件和要求,还是在输入时按照标准的“YYYY-MM-DD HH:MM:SS”格式来进行。

向tmp5表中插入YY-MM-DD和YYMMDD数字格式日期,SQL语句如下:

首先删除表中的数据:

DELETE FROM tmp5;

向表中插入YY-MM-DD和YYMMDD数字格式日期:

INSERT INTO tmp5 values (99-09-09),(990909), ( 000101) ,( 111111);

查看插入结果:

SELECT * FROM tmp5;

linuxidc_image019

可以看到,插入的第一条数据有一个警告,但是插入成功,插入的值变为了0000-00-00

向tmp5表中插入系统当前日期,SQL语句如下:

首先删除表中的数据:

DELETE FROM tmp5;

向表中插入系统当前日期:

INSERT INTO tmp5 values( CURRENT_DATE() ),( NOW() );

查看插入结果:

SELECT * FROM tmp5;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fd3beaf12212e6812c6a415af61ed7be.html