【澳门金沙vip】MySQL数据库和Java的小运项目详细深入分析

以下的文章主要向大家介绍的是MySQL数据库和Java的时间类型,以下的文章主要讲述的是MySQL数据库中时间类型与Java中所对应的时间类型,以下就是文章的详细内容描述,望你在浏览之后会有所收获。

MySql的时间类型有          Java中与之对应的时间类型 date                                           java.sql.Date
Datetime                                    java.sql.Timestamp
Timestamp                                  java.sql.Timestamp
Time                                          java.sql.Time
Year                                           java.sql.Date

一般应用中,我们用timestamp,datetime,int类型来存储时间格式:

MySQL数据库的时间类型有 Java中与之对应的时间类型

对其进行分析 参考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
的方式进行该类字段的显示。添加该类字段数据,即可以使用字符串类型,也可以使用数字类型

i**nt(对应javaBean中的Integer或int)
**

date java.sql.Date  Datetime java.sql.Timestamp  Timestamp java.sql.Timestamp  Time java.sql.Time  Year java.sql.Date  

由于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对数据库进行操作)

  1. 占用4个字节

  2. 建立索引之后,查询速度快

  3. 条件范围搜索可以使用使用between

  4. 不能使用mysql提供的时间函数

对其进行分析

复制代码 代码如下:

结论:适合需要进行大量时间范围查询的数据表

参考MySQL 的reference manual

public void testDate()throws SQLException
{
       IDBFace DBFace =DBFactory.createMySqlFace();
       DBFace.connect();
       //清空表
       String strDelete =”delete from time_table”;
       DBFace.update(strDelete);
       //添加

datetime(javaBean中用Date类型)

Date:

       String strInsert =”insert into time_table(CreateDate)
values(20070409)”;
       DBFace.update(strInsert);

  1. 占用8个字节

  2. 允许为空值,可以自定义值,系统不会自动修改其值。

  3. 实际格式储存(Just stores what you have stored and retrieves the same
    thing which you have stored.)

  4. 与时区无关(It has nothing to deal with the TIMEZONE and
    Conversion.)

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.

             
       //获取
       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();
}

5.
不可以设定默认值,所以在不允许为空值的情况下,必须手动指定datetime字段的值才可以成功插入数据。

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

执行结果: 2007-04-09

6.
可以在指定datetime字段的值的时候使用now()变量来自动插入系统的当前时间。

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

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对数据进行格式化,允许以字符串和数字的方式提交。

结论:datetime类型适合用来记录数据的原始的创建时间,因为无论你怎么更改记录中其他字段的值,datetime字段的值都不会改变,除非你手动更改它。

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

例如以数字的方式进行提交: insert into time_table(CreateDate) values(20070409132013)
获取该类型的数据可以使用:java.sql.Timestamp类型
代码如下:

timestamp(javaBean中用Date或Timestamp类型)