全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

MySql和Java時(shí)間類(lèi)型詳細(xì)解答

更新時(shí)間:2018-12-26 來(lái)源:黑馬程序員技術(shù)社區(qū) 瀏覽量:

本技術(shù)文章是對(duì)MySql和Java時(shí)間類(lèi)型詳細(xì)解答,如果有需要的同學(xué)可以花時(shí)間去看一下,MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)它與java中與之對(duì)應(yīng)的時(shí)間類(lèi)型為

date java.sql.Date

Datetime java.sql.Timestamp

Timestamp java.sql.Timestamp

Time java.sql.Time

Year java.sql.Date



對(duì)其進(jìn)行分析
參考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 的方式進(jìn)行該類(lèi)字段的顯示。添加該類(lèi)字段數(shù)據(jù),即可以使用字符串類(lèi)型,也可以使用數(shù)字類(lèi)型


由于Date類(lèi)型的字段只記錄日期信息,所以如果添加的數(shù)據(jù)中包含了時(shí)間信息,該時(shí)間信息將會(huì)自動(dòng)被截?cái)唷?/p>

如果要保存時(shí)間信息,可以考慮使用DateTime類(lèi)型。

經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)如下2種方式可以對(duì)Date類(lèi)型字段進(jìn)行填充:

按字符串:

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

按數(shù)字:
insert into time_table(CreateDate) values(20070409)


獲取可以用java.sql.Date類(lèi)型獲取

代碼為:

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


測(cè)試代碼如下:(其中,IDBFace 是自己基于JDBC封裝的一個(gè)簡(jiǎn)單類(lèi), 接受Sql對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作)
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();

}

執(zhí)行結(jié)果: 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最主要的區(qū)別在于:DateTime 可以記錄日期和時(shí)間信息。而Date只記錄日期信息。表示范圍為: 1000-01-01 00:00:00 至 9999-12-31 23:59:59 MySql的按照YYYY-MM-DD HH:MM:SS對(duì)數(shù)據(jù)進(jìn)行格式化,允許以字符串和數(shù)字的方式提交。


例如以數(shù)字的方式進(jìn)行提交:
insert into time_table(CreateDate) values(20070409132013)


獲取該類(lèi)型的數(shù)據(jù)可以使用:java.sql.Timestamp類(lèi)型

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

{

IDBFace DBFace =DBFactory.createMySqlFace();

DBFace.connect();

//清空表

String strDelete ="delete from time_table";

文章來(lái)源 :
作者:黑馬程序JavaEE培訓(xùn)學(xué)院    
首發(fā):http://java.itheima.com/?v2

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!