JDBC操作MySQL5日期类型字段的问题解决方法
JDBC操作MySQL5日期类型字段的问题解决方法
?
由于日期数据的特殊性和多样性,以及不同的数据库、编程语言对日期的定义和处理方式差别,导致了日期处理的复杂性,和多样性。
?
流行的Hibernate、iBatis等持久化框架从中解决了各种Java日期与数据库日期之间操作的细节问题,JDBC操作数据库日期的问题已经被淡化了。但是对于纯JDBC开发者来说,这些问题不可小觑。
?
下面以MySQL5和Java5为基础,说明Java处理数据库日期的一些问题及解决方案。
?
认识MySQL的日期类型:
列类型
|
“零”值
|
DATETIME
|
'0000-00-00 00:00:00'
|
DATE
|
'0000-00-00'
|
TIMESTAMP
|
00000000000000
|
TIME
|
'00:00:00'
|
YEAR
|
0000
|
从零值类型,也可以清晰看出日期的格式,再次,并不想讨论所有的数据类型,二是针对前三种常用类型做以分析。
?
MySQL日期类型的一些说明:
当你需要同时包含日期和时间信息的值时则使用DATETIME类型。MySQL以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。?
当你只需要日期值而不需要时间部分时应使用DATE类型。MySQL用'YYYY-MM-DD'格式检索和显示DATE值。?
TIMESTAMP列类型的属性不固定,取决于MySQL版本和服务器运行的SQL模式。?
TIMESTAMP列的显示格式与DATETIME列相同。换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS。?
在一定程度上,可以将一个日期类型的值分配给一个不同的日期类型。但是,值可能会更改或丢失一些信息:?
·???????????????? 如果你为一个DATETIME或TIMESTAMP对象分配一个DATE值,结果值的时间部分被设置为'00:00:00',因为