Java 将当前时间插入表中

Java 将当前时间插入表中,java,oracle,date,time,Java,Oracle,Date,Time,通过使用上面的代码,我试图将当前日期和时间插入表中,表中有单独的列。当我执行上述查询时,它也会在timein_time字段中插入今天的日期 编辑 IN_TIME和DOV的数据类型是DATE 需要帮助 您最好使用oracle的“systimestamp”。原因是,如果java代码在一个时区运行,而oracle则在另一个时区运行。强制使用自己的时间对象可能会导致问题 你真的需要单独的字段吗?我想只要有一个时间戳就足够了。使用。这是我使用它的一种方式: java.uti

通过使用上面的代码,我试图将当前日期和时间插入表中,表中有单独的列。当我执行上述查询时,它也会在time
in_time
字段中插入今天的日期

编辑

IN_TIME
DOV
的数据类型是
DATE


需要帮助

您最好使用oracle的“systimestamp”。原因是,如果java代码在一个时区运行,而oracle则在另一个时区运行。强制使用自己的时间对象可能会导致问题

你真的需要单独的字段吗?我想只要有一个时间戳就足够了。

使用。这是我使用它的一种方式:

                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);
                        }

由于DOV和IN_TIME是
日期
,因此不需要将日期和小时分开。Oracle中的类型
date
保存日期和时间。我建议您将表更改为只有一个日期列

要插入当前时间,可以使用Oracle的
sysdate
功能:

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);

要格式化日期值的输出,您可以使用Java中的
SimpleDateFormat
类或Oracle中的
To_char

Oracle数据库中的
date
列将始终存储一天(即2012年3月22日)和到第二天(即下午3:30:00)的时间。java.sql.Date和java.sql.Time也存储日期和时间,但以毫秒为单位


在Oracle中为日期和时间设置单独的列是没有意义的,尤其是当两个列都声明为
DATE
数据类型时。使用声明为
日期的单个列将更为传统。如果您真的愿意,您可以截断一天,使其表示当前一天的午夜,然后将时间组件存储为,例如,一个从天到秒的间隔。但这通常会给系统增加相当多的复杂性,但收益很小。

遵循这一点,它对java和oracle都有帮助

创建表datetime(日期时间戳)

插入日期时间值(sysdate)

要获取日期,请执行以下操作: 从datetime中选择to_char(date_time,'DD-MON-YY')

例如:2012年7月12日

要获得每月: 从datetime中选择to_char(date_time,'mm')

例:7

要获得时间: 从datetime中选择to_char(date_time,'HH24:MI:SS')

例:23:56:15


干杯

IN_TIME列的类型是什么?SYSDATE将是数据库中声明当前时间的方式。@sql_query-数据库中的
DOV
IN_TIME
列的数据类型是什么?DOV的数据类型是日期,IN_TIME也是日期如何。。??我是这样试的<代码>SimpleDataFormat日期格式=新SimpleDataFormat(“HH:mm”);java.util.Date birth=(java.util.Date)dateFormat.parse(Date.toString());java.sql.Date db=new java.sql.Date(birth.getTime())
在这种情况下,
DATETIME\u列的数据类型是什么
INSERT INTO PR_VISITOR(PRISONER_ID,VISITOR_NAME,FATHER_NAME,DATETIME_COLUMN) VALUES (?,?,?,?,SYSDATE)