`
nsk696
  • 浏览: 19471 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java对数据库中时间的操作

    博客分类:
  • java
阅读更多
日期类
java.util.Date下面继承了三个子类,分别是
java.sql.Time:针对数据库中的时间
java.sql.Date:针对数据库中的日期
java.sql.Timesamp:数据库中的时期日期部分

对于日期的格式化,常用的是
java.text.DateFormt类的子类java.text.SimpleDateFormat

如果要想获得日期中的具体的年,月,日,时,分,秒等,那么可以用java.util.Calendar类

声明:以上部分完全是API中的内容

Java代码

  /**
 * Java对数据库中时间的操作
 * @author DaHai
 * 如果要取出数据库中的日期或时间,建议用Timestamp类
 *	
 */
public class DateTime {
	public static void main(String[] args) {
		DateTime oracle = new DateTime();
		oracle.query();
	}
	
	public Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "scott", "tiger");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}

	public void query() {
		Connection conn = getConnection();
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String time = "";
		int dt = 0;
		try {
			pstmt = conn.prepareStatement("select scsj from erp_testwhere wygjz=1");
			rs = pstmt.executeQuery();
			while (rs.next()) {
				Date d = rs.getDate("scsj");
				
				//数据库为2008-1-8 16:51:00这种格式
				//Date类即包括时间又包括日期
				//因为是用的getDate方法,当做date取出来,所以时间没有取到
				//因为是用的getTime方法,当做time取出来,所以日期没有取到
				//输出为日期
				System.out.println(rs.getDate("scsj"));
				//输出为时间
				System.out.println(rs.getTime("scsj"));
				
				//注意打印格式,这里的rs.getDate只获取日期,要获得时间需用rs.getTime()
			    //输出应该为2008年01月08日,但此处输出00:00:00,因为d是getDate()方法
				SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
				System.out.println(sdf.format(d));
				
				dt = getDateTime(rs.getDate("scsj"),Calendar.MONTH);
				System.out.println(dt);
				
				time = this.getDate(rs.getTimestamp("scsj"));
				System.out.println(time);
			}
		}  catch (SQLException e) {
			try {
				if(conn!=null){
					conn.rollback();
				}
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
			e.printStackTrace();
		} finally{
			try {
				if(rs!=null){
					rs.close();
					rs = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if(pstmt!=null){
					pstmt.close();
					pstmt = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if(conn!=null){
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 获得date字段的年份
	 * Timestamp类可以取出时间与日期,时间或日期
	 * 此处取日期
	 * @param ts 
	 * @return
	 */
	public String getDate(Timestamp ts){		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(ts);
	}
	
	/**
	 * 获得date字段的时间
	 * Timestamp类可以取出时间与日期,时间或日期
	 * 此处取时间
	 * @param ts
	 * @return
	 */
	public String getTime(Timestamp ts){
		SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
		return sdf.format(ts);
	}
	
	/**
	 * 返回数据库中日期中的具体月份
	 * @param d
	 * @param dt,dt变量为Calendar的静态变量
	 * @return
	 */
	public int getDateTime(Date d ,int dt){
		Calendar c = Calendar.getInstance();
		c.setTime(d);
		return c.get(dt);
	}
}

分享到:
评论

相关推荐

    基于java实现的数据库管理系统.7z

    从.java到.class再到类加载执行的过程对SQL语句进行先编译再执行,时间有限,,只有一 星期时间,细节方面没考虑很多,代码也没怎么重构,看起来有点凌乱。。。 1.执行过程思路:先根据sql语法把sql字符串切割成...

    javashop数据库文档及操作手册

    java电商开源项目javashop数据库设计文档、sql脚本及操作手册

    java模拟数据库sql操作源码,适合作中间件

    积分不多了,赚个分,大家海涵 ,这个源码学习用最佳,还可以做中间件,不用配数据库,直接可以看成一个数据库的源码,当然效率很低!有很多不足大家一起努力更正!!~~

    使用JAVA内存数据库h2database性能优化

    1.系统在不断实时地访问数据库时,一秒钟对同一个表操作几千,几万次以上,导致数据表死锁或则处理太慢; 2.对数据实时计算,而且数据量很大时,比如电信系统的电信的二次批价和实时累账 3. 需实时统计数据,监控...

    java配置多数据库

    tomcat连接池,实现对多数据库的不同操作

    java实现读取word文件并且上传到数据库

    用java语言实现对word表格操作,实现自动批量往数据库中插入数据,节省插入数据时间。

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    也不是单单是浏览器,如果你愿意(要你有钱,有时间,有优秀的JAVA人才)你可以把所有的这一切用Java完全集成出来!!!我不是夸大JAVA的功能,大家可以访问一下http://www.simchina.net的那个社区程序,你就能找到...

    java数据库操作封装.zip

    使用java接口减少重复代码,java学习用数据库封装类,

    JAVA ORACLE数据库资料讲解

    其中应用环境包括:业务需求、数据需求和技术条件等具体情况,而数据库模式包括数据之间的联系、数据应满足的约束以及对数据的典型操作。从面向对象的角度讲:数据库设计就是类的持久化。 1 数据库设计的重要性 各种...

    长途汽车信息管理系统【课程设计-java-数据库】.docx

    长途汽车信息管理系统【课程设计-java-数据库】 长途汽车信息管理系统【课程设计-java-数据库】全文共46页,当前为第1页。长途汽车信息管理系统【课程设计-java-数据库】全文共46页,当前为第1页。长途汽车信息管理...

    java数据库课程设计_编程词典用户管理系统

    用于完成词典的销售操作,并且在销售时可以批量添加多条销售信息,也就是针对一个用户可以在一个界面中销售多种词典,并且每添加一种编程词典信息,系统会自动计算相关数据,销售成功后会将销售信息分别保存在销售主...

    基于java实现的数据库管理系统.pdf

    DBFContent.java:这个是⼀个JavaBean,通过将读取到的DBF中数据存储到这个JavaBean中,实现对数据库中数据的操作 DBFUtils.java:DBF⽂件操作⼯具类,通过对javadbf4.1.jar中函数的调⽤,实现对DBF⽂件的读写操作...

    java 在线考试系统源码(含数据库脚本).rar

    业务描述:根据前面所做的需求分析及用户的需求可知,网络在线考试系统属于中小型软件,在系统实施后应达到以下目标。 1,具有空间性。被授权的用户可以在异地登录网络在线考试系统,而无须到指定地点进行考试。 2,...

    数据库连接池(database connection pool)是在 Java 中用于管理数据库连接的一种技术

    数据库连接池(database connection pool)是在 Java 中用于管理数据库连接的一种技术。它的主要目的是提高数据库连接的重用性和性能。在传统的数据库连接方式中,每次与数据库建立连接时都需要进行一系列的网络通信...

    java动态管理定时任务

    spring+quartz整合,动态管理定时任务,可对正在进行的任务操作增删改查,可配合数据库进行操作

    Java数据操作组件(过期了)

    这是个数据库操作组件,使用它,可以减少数据层代码至少一半以上,只需一句代码即可完成一次增(删改查)操作。同时支持多表关联。

    数据库-Java课程设计完整版.doc

    该课程设计要求设计一个成绩管理的数据库 系统,数据库中要求包含学生的基本信息,学校所有专业信息,学校教师信息以及课 程设置的信息。同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等, 最后还要对...

    JAVA_API1.6文档(中文)

    java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text ...

    spring aop 自定义注解保存操作日志到mysql数据库 源码

    3、对spring aop认识模糊的,不清楚如何实现Java 自定义注解的 4、想看spring aop 注解实现记录系统日志并入库等 二、能学到什么 1、收获可用源码 2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑...

    数据库课程设计—企业工资管理系统(java版+完整代码).doc

    在时间特性上,当用户发出命令请求时的服 务器的响应时间、对数据更新处理、工资数据的查询检索等上,同样要求系统响应时间 不会超过0.5秒时间。系统支持多种操作系统的运行环境,多不同操作系统,不同文件格 式的...

Global site tag (gtag.js) - Google Analytics