Как вставить дату и время в оракул?
У меня возникла проблема с вставкой строки в мою таблицу. Вот инструкция insert и создание таблицы. Это часть присвоения uni, следовательно, простота, что я делаю неправильно? Im с использованием oracle SQL-разработчика версии 3.0.04.
Проблема, с которой я сталкиваюсь, заключается в том, что она только вставляет dd/mon/yy, но не время. Как мне заставить его также вставить время?
INSERT INTO WORKON (STAFFNO,CAMPAIGNTITLE,DATETIME,HOURS)
VALUES ('102','Machanic Summer Savings',TO_DATE('22/April/2011 8:30:00AM','DD/MON/YY HH:MI:SSAM'),'3')
;
CREATE TABLE WorkOn
(
StaffNo NCHAR(4),
CampaignTitle VARCHAR(50),
DateTime DATE,
Hours VARCHAR(2)
)
;
Спасибо за помощь.
EDIT: Это не имеет никакого смысла, я ввожу только время в поле, чтобы проверить, работает ли время, и выводит дату WTF? Это действительно странно, я не могу использовать поле даты и просто вводить время, я понимаю, что это приведет к проблемам с манипулированием данными, но это не имеет смысла...
Ответы
Ответ 1
Вы все делаете правильно, используя функцию to_date и указывая время. Время есть в базе данных. Проблема в том, что когда вы выбираете столбец типа данных DATE из базы данных, маска формата по умолчанию не показывает время. Если вы выпускаете
alter session set nls_date_format = 'dd/MON/yyyy hh24:mi:ss'
или что-то подобное, включая компонент времени, вы увидите, что время успешно попало в базу данных.
Ответ 2
Вы можете использовать
insert into table_name
(date_field)
values
(TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));
Надеюсь, что это поможет.
Ответ 3
Попробуйте следующее:
... (to_date('2011/04/22 08:30:00', 'yyyy/mm/dd hh24:mi:ss'));
Ответ 4
Просто используйте функцию TO_DATE()
для преобразования строки в DATE
.
Например:
create table Customer(
CustId int primary key,
CustName varchar(20),
DOB date);
insert into Customer values(1,'Vishnu', TO_DATE('1994/12/16 12:00:00', 'yyyy/mm/dd hh:mi:ss'));