Mysql日期/时间数据类型实战

一 创建数据表tmp3,定义数据类型为YEAR的字段y,向表中插入值2010,’2010’,’2166’

首先创建表tmp3:

mysql> CREATE TABLE tmp3(  y YEAR );
Query OK, 0 rows affected (0.27 sec)

向表中插入数据:

mysql> INSERT INTO tmp3 values(2010),('2010');
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0

再次向表中插入数据:

mysql> INSERT INTO tmp3 values ('2166');
ERROR 1264 (22003): Out of range value for column 'y' at row 1

语句执行之后,MySQL给出了一条错误提示,使用SHOW查看错误信息:

mysql> SHOW WARNINGS;
+-------+------+--------------------------------------------+
| Level | Code | Message                                    |
+-------+------+--------------------------------------------+
| Error | 1264 | Out of range value for column 'y' at row 1 |
+-------+------+--------------------------------------------+
1 row in set (0.00 sec)

可以看到,插入的第3个值2166超过了YEAR类型的取值范围,此时不能正常的执行插入操作,查看结果:

mysql> SELECT * FROM tmp3;
+------+
| y    |
+------+
| 2010 |
| 2010 |
+------+
2 rows in set (0.00 sec)

由结果可以看到,当插入值为数值类型的2010或者字符串类型的’2010’时,都正确的储存到了数据库中;而当插入值’2166’时,由于超出了YEAR类型的取值范围,因此,不能插入值。

二 向tmp3表中y字段插入2位字符串表示的YEAR值,分别为'0'、'00'、'77'和'10'

首先删除表中的数据:

mysql> DELETE FROM tmp3;
Query OK, 2 rows affected (0.03 sec)

向表中插入数据:

mysql> INSERT INTO tmp3 values('0'),('00'),('77'),('10');
Query OK, 4 rows affected (0.03 sec)
Records: 4  Duplicates: 0  Warnings: 0

查看结果:

mysql> SELECT * FROM tmp3;
+------+
| y    |
+------+
| 2000 |
| 2000 |
| 1977 |
| 2010 |
+------+
4 rows in set (0.00 sec)

由结果可以看到,字符串'0'和'00'的作用相同,分别都转换成了2000年;'77'转换为1977;'10'转换为2010。

三 向tmp3表中y字段插入2位数字表示表示的YEAR值,分别为0、78和11

首先删除表中的数据:

mysql> DELETE FROM tmp3;
Query OK, 4 rows affected (0.03 sec)

向表中插入数据:

mysql> INSERT INTO tmp3 values(0),(78),(11);
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0

查看结果:

mysql> SELECT * FROM tmp3;
+------+
| y    |
+------+
| 0000 |
| 1978 |
| 2011 |
+------+
3 rows in set (0.00 sec)

由结果可以看到,0被转换为0000;78被转换为1978;11被转换为2011。

四 创建数据表tmp4,定义数据类型为TIME的字段t,向表中插入值'10:05:05'ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值