我在表格中插入一行时遇到问题。这是insert语句和表创建。这是单一任务的一部分因此简单,我做错了什么?我正在使用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)
)
;
感谢您的帮助。
编辑:这没有任何意义,我只是在现场输入一个时间来测试时间是否正常并输出日期WTF?这真的很奇怪我可能不会使用日期字段而只是输入时间,我意识到这将导致操纵数据的问题,但这没有任何意义......
答案 0 :(得分:38)
您可以使用
insert into table_name
(date_field)
values
(TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));
希望它有所帮助。
答案 1 :(得分:35)
通过使用to_date函数并指定时间,您正在做一切正确的事情。时间就在数据库中。问题在于,当您从数据库中选择DATE数据类型列时,默认格式掩码不会显示时间。如果您发出
alter session set nls_date_format = 'dd/MON/yyyy hh24:mi:ss'
或包含时间组件的类似内容,您将看到成功进入数据库的时间。
答案 2 :(得分:5)
试试这个:
... (to_date('2011/04/22 08:30:00', 'yyyy/mm/dd hh24:mi:ss'));
答案 3 :(得分:2)
只需使用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'));
答案 4 :(得分:0)
int a[10];