如何在oracle中插入日期和时间?

时间:2011-09-24 02:36:47

标签: oracle

我在表格中插入一行时遇到问题。这是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?这真的很奇怪我可能不会使用日期字段而只是输入时间,我意识到这将导致操纵数据的问题,但这没有任何意义......

5 个答案:

答案 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];