вставить текущее время в таблицу - PullRequest
0 голосов
/ 23 марта 2012
                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.

РЕДАКТИРОВАТЬ

DATATYPE OF IN_TIME и DOV are DATE.

Нужна помощь .. !!

Ответы [ 5 ]

1 голос
/ 23 марта 2012
Столбец

A DATE в базе данных Oracle всегда будет хранить как день (т. Е. 22 марта 2012 г.), так и время с точностью до секунды (т. Е. 15:30:00).Java.sql.Date и java.sql.Time хранят также день и время, но с точностью до миллисекунды.

Не имеет смысла иметь отдельные столбцы в Oracle для дня и длявремя, но особенно не там, где оба столбца объявлены как DATE типы данных.Было бы гораздо более привычно использовать один столбец, объявленный как DATE.Если вы действительно хотите, вы можете обрезать день так, чтобы он представлял полночь текущего дня, а затем сохранить компонент времени, скажем, как INTERVAL DAY TO SECOND.Но это, как правило, добавило бы значительную сложность системе за очень небольшой выигрыш.

1 голос
/ 23 марта 2012

Поскольку DOV и IN_TIME равны date, вам не нужно разделять дату и час. Тип date в Oracle содержит дату и время. Я предлагаю вам изменить таблицу, чтобы в ней был только один столбец даты.

Для вставки текущего времени вы можете использовать функцию Oracle sysdate:

INSERT INTO PR_VISITOR(PRISONER_ID,VISITOR_NAME,FATHER_NAME,DATETIME_COLUMN) VALUES (?,?,?,?,SYSDATE)

Для форматирования вывода значения даты вы можете использовать класс SimpleDateFormat в Java или to_char в Oracle.

0 голосов
/ 24 марта 2012

Следуйте этому, это поможет как в Java, так и в Oracle

создать таблицу datetime (date_time timestamp);

вставить в значения даты и времени (sysdate);

Чтобы получить дату: выберите to_char (date_time, 'DD-MON-YY') из даты и времени;

например: 12-июль-12

Чтобы получить месяц: выберите to_char (date_time, 'mm') из datetime;

например: 7

Чтобы получить время: выберите to_char (date_time, 'HH24: MI: SS') из datetime;

например: 23: 56: 15

ура !!

0 голосов
/ 23 марта 2012

Использовать 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);
0 голосов
/ 23 марта 2012

Вам гораздо лучше использовать systimestamp оракула.Причина в том, что если вы работаете с Java-кодом в одном часовом поясе, а оракул живет в другом.Использование собственного объекта Time может вызвать проблемы.

Вам действительно нужны отдельные поля для этого?Я бы подумал, что достаточно иметь временную метку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...