MySql和Java时间类型详细解答

本文详细解读了MySQL中的Date、DateTime、Timestamp和Time类型,阐述了它们的范围、格式和使用方法,并提供了Java对应类型及示例。重点讲解了日期和日期时间的区别以及如何在Java中操作这些类型。
摘要由CSDN通过智能技术生成

本技术文章是对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";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值