2015-05-17 3 views
0

У меня есть следующая таблица в Oracle:Значение времени Штамп не вставляя в оракула

DESC TIME_PERIOD 
Name  Null  Type   
---------- -------- ------------ 
TIME_ID NOT NULL NUMBER(2)  
START_TIME NOT NULL TIMESTAMP(6) 
END_TIME NOT NULL TIMESTAMP(6) 

Я вставив значения, но значения не вставляются. Я использую следующий запрос.

INSERT INTO TIME_PERIOD (TIME_ID,START_TIME,END_TIME) 
    VALUES (1, TO_DSINTERVAL('0 23:59:59'), TO_DSINTERVAL('0 23:59:59')); 

Как вставить значение в Oracle?

Я хочу время как этот 10:00 утра 11: 00AM

1:00 вечера

+0

Вы указали две вставки столбцов, но поставляются с тремя значениями ... – jarlh

+4

'TO_DSINTERVAL' возвращает ** интервал ** не' timestamp' –

+0

временная метка всегда имеет часть даты. Oracle не имеет типа данных, который содержит только время; интервал DS настолько близок, насколько вы можете получить действительно. Или вы можете использовать временную метку с номинальной датой. Как вы будете использовать данные здесь? Предположительно, это будет связано с другими данными, так как будет создано это условие соединения? –

ответ

0

Не совсем уверен, что вы пытаетесь сделать, но вставить TIMESTAMP вам нужно использовать Функция SYSTIMESTAMP():

eg

INSERT INTO TIME_PERIOD (START_TIME) 
    VALUES (SYSTIMESTAMP); 
+0

Я хочу вставить как это to_date ('10: 00 ',' hh: mi ') –

+0

Oracle не имеет типа данных, который хранит только время. Вам нужно либо сохранить дату, либо сделать что-то вроде количества секунд/минут после полуночи. – cagcowboy