简介
日期与时间类型
mysql中有多种表示日期的数据类型,主要有:DATETIME DATE TIMESTAMP,DATE .每一个类型都有合法的取值范围,当指定确实不合法的值时系统将“零”值插入到数据库中。
YEAR
YEAR类型是一个单字节类型用于表示年,在存储时只需要1个字节。可以使用各种格式指定YEAR值,如下所示:
(1)以4位字符串或者四位数字格式表示的YEAR,范围为‘1901’-‘2155’。输入格式‘YYYY’或者YYYY,列如,输入‘2010’或2010,插入到数据库的值均为2010.
(2)以2位字符串格式表示的YEAR,范围为‘00’到‘99’。‘00-‘69’和‘70’-‘99’范围的值分别被转换为2000-2069和1970-1999范围的YEAR值。‘0’与‘00’的作用相同。插入超过取值范围的值将转被换位2000.
(3)以2位数字表示的YEAR,范围为1-99。1-69和70-99范围值分别为转换为2001-2069和1970-1999的范围YEAR值。
实例:创建数据表tmp3,定义数据类型为YEAR的字段y,向表中插入值2010,‘2010’‘2016’,sql语句如下:
首先创建表TMP3;
向表中插入数据;
语句执行后,MYSQL给出了一条错误提示,使用show查看错误信息:
可以看到,插入的第三个值2166超过了YEAR类型的取值范围,此时不能正常执行插入操作,查看结果:
由结果可以看到,当插入为数值类型的2010或者字符串类型的‘2010’时,都正确的存储到了数据库中;为当插入值‘2166’时,由于超出了YEAR类型的取值范围,因此,不能插入值。
例:5向tmp3表中y字段插入2位字符串表示的YEAR值,分别为‘0’,‘00’‘77’和‘10’,SQL语句如下:
首先删除表中数据;
DELETE FROM tmp3
由结果可以看到,字符串‘0’和‘00’的作用相同,分别都转换成了2000年;‘77’转换为1977;‘10’转换为2010.
首先删除表中数据:
由结果可以看到,0被转换为0000;78被转换为1978;11被转换为2011.
总结!数据库应该多练习孰能生巧!