引自:http://blog.sina.com.cn/s/blog_5671e70e0100fppm.html
public class Test{
public static void main (String args []){
java.util.Date a = new java.util.Date();
System.out.println(a);
java.sql.Date b = new java.sql.Date(a.getTime());
System.out.println(b);
java.sql.Time c = new java.sql.Time(a.getTime());
System.out.println(c);
java.sql.Timestamp d=new java.sql.Timestamp(a.getTime());
System.out.println(d);
}
}
Mon Apr 03 18:00:34 CST 2006
2006-04-03
18:00:34
2006-04-03 18:00:34.388
1. oracle默认的系统时间就是sysdate函数,储存的数据形如25-3-200510:55:33
2. java 中取时间的对象是java.util.Date。
3. oracle中对应的时间对象是java.util.Date,java.sql.Time,java.sql.Timestamp、它们都是是java.util.Date的子类。
4. oracle中与date操作关系最大的就是两个转换函数:to_date(),to_char()。to_date()一般用于写入日期到数据库时用到的函数。to_char()一般用于从数据库读入日
期时用到的函数。
DATE、TIME 和 TIMESTAMP:
SQL 定义了三种与时间有关的数据类型:DATE 由日、月和年组成。TIME 由小时、分钟和秒组成。 TIMESTAMP 将 DATE 和 TIME 结合起来,并添加了纳秒域。
标准 Java 类 java.util.Date 可提供日期和时间信息。但由于该类包含 DATE 和 TIME 信息而没有 TIMESTAMP 所需的纳秒,因此并不与上述三种 SQL 类型完全相配。
因此我们定义了 java.util.Date 的三种子类。它们是:
1. 有关 SQL DATE 信息的 java.sql.Date
2. 有关 SQL TIME 信息的 java.sql.Time
3. 有关 SQL TIMESTAMP 信息的 java.sql.Timestamp
对于 java.sql.Time,java.util.Time 基本类的小时、分钟、秒和毫秒域被设置为零。 对于 java.sql.Date,java.util.Date 基本类的年、月和日域被分别设置为 1970 年 1
月 1 日。这是在 Java 新纪元中的“零”日期。java.sql.date中的日期可以和标准的SQL语句中含有日期的字段进行比较.java.sql.Timestamp 类通过添加纳秒域来扩展
java.util.Date。
oracle中两个转换函数:
1. to_date() 作用将字符类型按一定格式转化为日期类型:
具体用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。如;to_date(''2004-11-27 13:34:43'', ''yyyy-mm-dd
hh24:mi:ss'') 将得到具体的时间。
2. to_char():将日期转按一定格式换成字符类型:
具体用法:to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'')
to_date()与24小时制表示法及mm分钟的显示:
在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810
格式代码出现两次”。
如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。 oracle默认的系统时间就是sysdate函数,储存的数据形如2005-3-2510:55:33
,java 中取时间的对象是java.util.Date。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual
在java对oracle的操作中,对日期字段操作的例子:
表 book 中有name varchar2(20)//书籍名称,buydate Date //购买日期 两个字段。
已经创建了数据库连接Connection conn;
方法一、使用java.sql.Date实现比较简单的yyyy-mm-dd格式日期。java.sql.Date不支持时间格式。切记不要使用new java.sql.Date(int year,int month,int date),因为还要处
理时间差问题。
PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
java.sql.Date buydate=java.sql.Date.valueOf("2005-06-08");
pstmt.setString(1, "Java编程思想");
pstmt.setDate(2,buydate );
pstmt.execute();
方法二、使用java.sql.Timestamp,同上不使用new Timestamp(....)
PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");
java.sql.Timestamp buydate=java.sql.Timestamp.valueOf("2004-06-08 05:33:99");
pstmt.setString(1, "Java编程思想");
pstmt.setTimestamp(2,buydate );
pstmt.execute();
方法三、使用oracle 的to_date内置函数
PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
String buydate="2004-06-08 05:33:99";
pstmt.setString(1, "Java编程思想");
pstmt.setString(2,buydate );
pstmt.execute();
附:oracle日期格式参数含义说明
d:一周中的星期几
day:天的名字,使用空格填充到9个字符
dd:月中的第几天
ddd:年中的第几天
dy:天的简写名
iw: ISO标准的年中的第几周
iyyy:ISO标准的四位年份
yyyy:四位年份
yyy,yy,y:年份的最后三位,两位,一位
hh: 小时,按12小时计
hh24:小时,按24小时计
mi:分
ss:秒
mm:月
mon:月份的简写
month:月份的全名
w:该月的第几个星期
ww:年中的第几个星期
=====================
sql111= select * from
logincount where logtime = to_date('2009-11-30','yyyy-MM-dd')
st = con.prepareStatement("select * from logincount where logtime = to_date('"+ new java.sql.Date(date.getTime())+"','yyyy-MM-dd')");
相关推荐
在oracle数据据库中批量插入数据的java方法
主要介绍了java实现oracle插入当前时间的方法,以实例形式对比分析了java使用Oracle操作时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
oracle中date类型的操作,增删改查oracle中date类型的操作,增删改查
java批量插入方法代码和一些注释
向数oracle据库中插入自增日期
ClassDao类中的CallableStatement cs = con.prepareCall("{? = call getMaxStudentId}") 其中getMaxStudentId为数据库中函数,需要自行定义,作用为反回该表单最大项号。
利用Java向Oracle中插入图片(BLOB)文件
Java操作Oracle批量入库的问题 技术文档
Java实现使用Mybatis将数据批量插入到Oracle数据库,并且可以使用Oracle序列来生成主键
用Java连接oracle数据库实现简单的查询、插入、删除和更新操作。
工作中有很多数据以txt方式存储,需要导入oracle数据库处理(方便进行计算、统计),因文件较多,不便于手工处理,所以编写此程序以便进行数据导入。已经测试过,可以将数据导入oracle。
JAVA连接oracle进行建表、插入数据、删除的操作;
java中xml文件的处理及oracle中xmltype的插入和读取.pdf
Java实现Mybatis将数据批量插入到Oracle中
java调用oracle分页存储过程,存储过程保存在sql文件夹下,可以直接运行。 实现了输入表名、每页显示记录数、当前页、排序字段,返回总记录数,总页数,和结果集。
此web工程实现了连接oracle数据库完成基本功能:查询,插入,删除,更新。连接的数据库为员工信息管理系统,采用Contrller,Service,Dao三层结构,controller层为servlet,下层均有一个接口和一个实现类。Bean的基本...
cst.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR); 5.获取输出参数的值 6.使用execute()调用过程 7.获取输出参数的值 Java调用过程的步骤与调用过程类似,第2步不一样: CallableStatement cst=conn....
主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java快速插入千万级数据,亲测91秒插入1700万数据!!!
通过执行jar文件,输入oracle登录信息、需要导入的表名、excel文件路径,路径可以是文件夹或者文件,可实现递归导入指定文件夹下的所有excel文件,每个文件可以是多个sheet。 每个数据文件的格式必须一致,所有sheet...