Oracle 数据库时间类型与 JAVA 程序时间类型间的互相应用
一.从 Oracle 数据库中查出时间的格式
1. 使用 sql 语句 SELECT SYSDATE FROM dual 在 PLSQL 控制台上显示的格式是 2011-3-22 22:33:30.但是用 JDBC 取到
的日期数据在 JAVA 控制台上的显示和在 PLSQL 中的显示有些不同,因为 JAVA 代码可以指定 java.sql.Date 类型或者
java.lang.String 类型来接受从数据库取出来的时间类型.
如果返回用 String 类型:
System.
out
.println("返回时间类型用 String 接收:" + rs.getString(1));
控制台输出为:2011-3-22 22:33:30.0;
如果返回用 Date 类型:
System.
out
.println("返回时间类型用 Date 接收" + rs.getDate(1));
控制台输出为:2011-03-22;
2. 使用
sql
语句
SELECT to_char(SYSDATE , 'yyyy-mm-dd HH24:mi:ss') FROM dual
在
PLSQL
控制台
上显示的格式是:
2011-03-22 22:55:02.
但是在
JDBC
取到的日期数据在 JAVA 控制台上的显示和在 PLSQL 中的
显示有些不同,并且 JAVA 代码中只能用 java.lang.String 类型来接受,因为 oracle 内置函数 to_char()将时间格
式化为字符串格式.
返回用 String 类型:
System.
out
.println("返回时间类型用 String 接收:" + rs.getString(1));
控制台输出为:
2011-03-22 22:55:02
;
二.从 JAVA 程序中向 Oracle 数据库中插入日期
1. 如果不加处理,JAVA 的 String 类接收的 sysdate 函数返回的日期格式(2011-03-22 22:39:34.0;)再次插入数据库是,
数据库报
ORA-01830: date format picture ends before converting entire input string
错误
.
2. 如果用 sql 语句 INSERT INTO tableName (datetime) VALUES (to_date(?,'yyyy-mm-dd hh24:mi:ss'))
并且传递的参数是 String 类型的日期(2011-03-22 22:39:34),则 Oracle 数据库中显示插入的日期是 2011-03-22
22:39:34.
三.to_date()与 24 小时制表示法及 mm 分钟的显示
1. 在使用 Oracle 的 to_date 函数来做日期转换时,也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行
转换,但是在 Oracle 中会引起错误:“ORA 01810 格式代码出现两次”. 原因是 SQL 中不区分大小写,MM 和 mm 认
为是相同的格式代码,所以 oracle 的 sql 采用 mi 代替分钟.
评论6