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

问题描述:

我无法在我的表格中插入一行。这里是插入语句和表的创建。这是uni任务的一部分,因此简单,我做错了什么?我使用的是Oracle SQL开发者版本3.0.04。'如何在oracle中插入日期和时间?

我遇到的问题是它只插入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

也分享你的表格定义 - 'DESC WORKON' –

您正在通过使用to_date函数并指定时间来做所有事情。数据库中存在时间。麻烦的是,当你从数据库中选择一列DATE数据类型时,默认格式掩码不显示时间。如果您发出

alter session set nls_date_format = 'dd/MON/yyyy hh24:mi:ss'

或类似,包括时间分量的东西,你会看到时间成功把它做成了数据库。

Regards,
Rob。

+0

omg谢谢,只是最后一个问题,它设置所有日期格式的列的格式,导致时间显示列,我只希望显示日期。是否可以为特定的表格指定它? – Deep

+1

那么你必须在你的select语句中指定日期格式掩码。类似于“select to_char(datetime,'dd-mm-yyyy hh24:mi:ss')来自workon的datetime”。 –

+0

这个“更改会话”命令是天赐之物(我是一个完整的Oracle新手)。感谢Rob。 –

试试这个:

.. (to_date('2011/04/22 08:30:00', 'yyyy/mm/dd hh24:mi:ss'));

+0

没有抱歉没有同样的事情,它只显示日期。 – Deep

+0

对不起,我有一个错字 - 请再试一次。 – jschorr

+0

嗨它仍然不起作用,它只插入日期部分,并忽略时间。如果我只进入一段时间,那么它只是将它转换为日期... MySQL对我来说比oracle更有意义... – Deep

您可以使用

insert into table_name 
(date_field) 
values 
(TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss')); 

希望它能帮助。