首页技术文章正文

MySql和Java时间类型详细解答

更新时间:2018-12-26 来源:黑马程序员技术社区 浏览量:

本技术文章是对MySql和Java时间类型详细解答,如果有需要的同学可以花时间去看一下,MySQL是一个关系型数据库管理系统它与java中与之对应的时间类型为

date java.sql.Date

Datetime java.sql.Timestamp

Timestamp java.sql.Timestamp

Time java.sql.Time

Year java.sql.Date



对其进行分析
参考MySql 的reference manual

Date:
A date. The supported range is '1000-01-01' to '9999-12-31'. MySQL displays DATE values in 'YYYY-MM-DD' format, but allows you to assign values to DATE columns using either strings or numbers.


只记录日期信息,表示范围为1000-01-01 至 9999-12-31。

MySql 按照YYYY-MM-DD 的方式进行该类字段的显示。添加该类字段数据,即可以使用字符串类型,也可以使用数字类型


由于Date类型的字段只记录日期信息,所以如果添加的数据中包含了时间信息,该时间信息将会自动被截断。

如果要保存时间信息,可以考虑使用DateTime类型。

经过测试,发现如下2种方式可以对Date类型字段进行填充:

按字符串:

insert into time_table(CreateDate) values(‘2007-04-09’)

按数字:
insert into time_table(CreateDate) values(20070409)


获取可以用java.sql.Date类型获取

代码为:

Date dtDate =rsBuffer.getDate("CreateDate");


测试代码如下:(其中,IDBFace 是自己基于JDBC封装的一个简单类, 接受Sql对数据库进行操作)
public void testDate()throws SQLException

{

IDBFace DBFace =DBFactory.createMySqlFace();

DBFace.connect();

//清空表

String strDelete ="delete from time_table";

DBFace.update(strDelete);

//添加


String strInsert ="insert into time_table(CreateDate) values(20070409)";

DBFace.update(strInsert);



//获取

String strSelect ="select * from time_table";

ResultSet rsBuffer =DBFace.select(strSelect);

while(rsBuffer.next())

{

Date dtDate =rsBuffer.getDate("CreateDate");

System.out.println(dtDate.toString());

}

DBFace.close();

}

执行结果: 2007-04-09


DateTime
A date and time combination. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. MySQL displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format, but allows you to assign values to DATETIME columns using either strings or numbers.

DateTime 与Date最主要的区别在于:DateTime 可以记录日期和时间信息。而Date只记录日期信息。表示范围为: 1000-01-01 00:00:00 至 9999-12-31 23:59:59 MySql的按照YYYY-MM-DD HH:MM:SS对数据进行格式化,允许以字符串和数字的方式提交。


例如以数字的方式进行提交:
insert into time_table(CreateDate) values(20070409132013)


获取该类型的数据可以使用:java.sql.Timestamp类型

代码如下:
public void testDateTime() throws SQLException

{

IDBFace DBFace =DBFactory.createMySqlFace();

DBFace.connect();

//清空表

String strDelete ="delete from time_table";

文章来源 :
作者:黑马程序JavaEE培训学院    
首发:http://java.itheima.com/?v2

分享到:
在线咨询 我要报名
和我们在线交谈!