java.util.Date date = new java.util.Date();
java.sql.Date today = new java.sql.Date(date.getTime()); //2012-03-23
java.sql.Time time = new java.sql.Time(date.getTime()); //02:32:46
PreparedStatement pst = null;
String queryString = "INSERT INTO PR_VISITOR(PRISONER_ID,VISITOR_NAME,FATHER_NAME,DOV,IN_TIME) VALUES (?,?,?,?,?)";
pst = connect.prepareStatement(queryString);
pst.setString(1, pr_id);
pst.setString(2, visit);
pst.setString(3, father);
pst.setDate(4, today);
pst.setTime(5, time);
int officerQuery = pst.executeUpdate();
if (officerQuery == 1) {
response.sendRedirect("/FYP3.4/prisonAdmin/visitor_out.jsp");
JOptionPane.showMessageDialog(null, "Visitor information registered !!", "Visitor Information", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Unable to Add information !!", "Visitor Information", JOptionPane.ERROR_MESSAGE);
}
通过使用上面的代码,我试图将当前日期和时间插入到具有单独列的表中。当我执行上述查询时,它也会在IN_TIME
字段中插入今天的日期。
修改
IN_TIME
和DOV
的数据集为DATE
。
需要帮助.. !!
答案 0 :(得分:1)
由于DOV和IN_TIME为date
,因此您无需分开日期和小时。 Oracle中的date
类型包含日期和时间。我建议您将表更改为只有一个日期列。
要插入当前时间,您可以使用Oracle的sysdate
函数:
INSERT INTO PR_VISITOR(PRISONER_ID,VISITOR_NAME,FATHER_NAME,DATETIME_COLUMN) VALUES (?,?,?,?,SYSDATE)
要格式化日期值的输出,您可以使用Java中的SimpleDateFormat
类或Oracle中的to_char
。
答案 1 :(得分:1)
Oracle数据库中的DATE
列将始终存储一天(即2012年3月22日)和第二天(即3:30:00 PM)的时间。 java.sql.Date和java.sql.Time也存储日期和时间,但是存储到毫秒。
在当天和当时在Oracle中使用单独的列并不是真的有意义,但特别是在两列都被声明为DATE
数据类型的情况下。使用声明为DATE
的单个列会更常规。如果您真的想要,可以截断当天,以便它代表当天的午夜,然后将时间组件存储为INTERVAL DAY TO SECOND
。但这通常会给系统增加相当大的复杂性,而收益却很小。
答案 2 :(得分:0)
使用oracle的'systimestamp'会好得多。原因是,如果你的java代码在一个时区运行,而oracle则在另一个时区运行。强制使用自己的Time对象可能会导致问题。
你真的需要单独的字段吗?我认为只要有一个时间戳就足够了。
答案 3 :(得分:0)
使用SimpleDateFormat。这是我使用它的一种方式:
Date now = Calendar.getInstance().getTime());
DateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(now);
DateFormat tf = new SimpleDateFormat("HHmmss");
String time = tf.format(now);
答案 4 :(得分:0)
遵循这一点,它将有助于java和oracle
create table datetime(date_time timestamp);
插入日期时间值(sysdate);
获取日期: 从datetime中选择to_char(date_time,'DD-MON-YY');
例如:12-JUL-12
获得月份: 从datetime中选择to_char(date_time,'mm');
例如:7
获得时间: 从datetime中选择to_char(date_time,'HH24:MI:SS');
例如:23:56:15
欢呼声!!