首页 理论教育 Java时间类型详解

Java时间类型详解

时间:2023-10-19 理论教育 版权反馈
【摘要】:表示时间值的日期和时间类型为YEAR、TIME、DATE、DATETIME和TIMESTAMP。◇ TIMESTAMP,字节数为4,取值范围为“19700101080001~20380119111407”。2.TIME类型TIME类型表示为“时:分:秒”,尽管小时范围一般是0~23,但是为了表示某些特殊时间间隔,MySQL将TIME的小时范围扩大了,而且支持负值。TIME类型只占3个字节,如果只是存储时间数据,它是最合适的选择。3.DATE类型MySQL是以“YYYY-MM-DD”格式来显示DATE类型的值。

Java时间类型详解

表示时间值的日期和时间类型为YEAR、TIME、DATE、DATETIME和TIMESTAMP。

◇ YEAR,字节数为1,取值范围为“1901~2155”。

◇ TIME,字节数为3,取值范围为“-838:59:59~838:59:59”。

◇ DATE,字节数为4,取值范围为“1000-01-01~9999-12-31”。

◇ DATETIME,字节数为8,取值范围为“1000-01-01 00:00:00~9999-12-31 23:59:59”。

◇ TIMESTAMP,字节数为4,取值范围为“19700101080001~20380119111407”。

当插入值超出有效取值范围时,系统会报错,并将零值插入到数据库中。

1.YEAR类型

给YEAR类型赋值可以有三种方法。第一种是直接插入4位字符串或者4位数字。第二种是插入2位字符串,这种情况下如果插入“'00'~'69'”,则相当于插入“2000~2069”;如果插入“'70'~'99'”,则相当于插入“1970~1999”。第二种情况下插入的如果是“'0'”,则与插入“'00'”效果相同,都是表示2000年。第三种是插入2位数字,它与第二种(插入2位字符串)的不同之处仅在于:如果插入的是一位数字0,则表示0000,而不是2000年。所以在给YEAR类型赋值时,一定要分清“0”和“'0'”,虽然两者相差一对引号,但实际结果却相差了2000年。

2.TIME类型(www.xing528.com)

TIME类型表示为“时:分:秒”,尽管小时范围一般是0~23,但是为了表示某些特殊时间间隔,MySQL将TIME的小时范围扩大了,而且支持负值。对TIME类型赋值,标准格式是“HH:M M:SS”,但不一定非要是这种格式。如果插入的是“D HH:MM:SS”格式,则类似插入了“(D*24+HH):MM:SS”。比如插入“2 23:50:50”,相当于插入了“71:50:50”。如果插入的是“HH:MM”或“SS”格式,则结果是其他未被表示位的值被赋为零值。比如插入“30”,相当于插入了“00:00:30”;如果插入“11:25”,相当于插入了“11:25:00”。另外也可以插入“D HH”和“D HH:MM”,结果与上面的例子一致,照此类推。在MySQL中,对于“HHMMSS”格式,系统能自动转化为标准格式。

如果我们想插入当前系统的时间,则可以插入CURRENT_TIME()或者NOW()。TIME类型只占3个字节,如果只是存储时间数据,它是最合适的选择。

3.DATE类型

MySQL是以“YYYY-MM-DD”格式来显示DATE类型的值。插入数据时,数据可以保持这种格式。另外,MySQL还支持一些不严格的语法格式,分隔符“-”可以用“@”“.”等众多符号来替代。在插入数据时,也可以使用“YY-MM-DD”格式,YY转换成对应年份的规则与YEAR类型类似。如果我们想插入当前系统的时间,则可以插入CURRENT_DATE()或者NOW()。

4.DATETIME类型

标准格式为“YYYY-MM-DD HH:MM:SS”,具体赋值方法与上面各种类型的方法相似。

5.TIMESTAMP类型

TIMESTAMP的取值范围比较小,没有DATETIME的取值范围大,因此输入值时一定要保证在TIMESTAMP的范围之内。它的插入也与插入其他日期和时间数据类型类似。那么TIMESTAMP类型如何插入当前时间呢?第一,可以使用CURRENT_TIMESTAMP();第二,输入NULL,系统自动输入当前的TIMESTAMP;第三,无任何输入,系统自动输入当前的TIMESTAMP。另外很特殊的一点是:TIMESTAMP的数值是与时区相关的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈