甲骨文。如何输出日期和时间?

时间:2013-06-20 20:31:26

标签: oracle date time

我的访问表如下:

insert into Visit
values(12, to_date('19-JUN-13', 'dd-mon-yy'), to_date('19-JUN-13 12:00 A.M.' , 'dd-mon-yy hh:mi A.M.'));
insert into Visit
values(15, to_date('20-JUN-13', 'dd-mon-yy'), to_date('20-JUN-13 02:00 A.M.' , 'dd-mon-yy hh:mi A.M.'));
insert into Visit
values(18, to_date('21-JUN-13', 'dd-mon-yy'), to_date('21-JUN-13 10:30 A.M.' , 'dd-mon-yy hh:mi A.M.'));

当我尝试查询时: select * from Visit我得到:

SQL> select * from visit;

   SLOTNUM DATEVISIT ACTUALARRIVALTIME                                                                                                                                                                                                                                                                                                                                                                                 
---------- --------- ------------------------------                                                                                                                                                                                                                                                                                                                                                                     
        12 19-JUN-13 19-JUN-13                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
        15 20-JUN-13 20-JUN-13                                                                                                                                                                                                       
        18 21-JUN-13 21-JUN-13                                                                                                                                                                                                      

SQL> spool off;

时间到了怎么样?

5 个答案:

答案 0 :(得分:11)

您还可以设置适用于所有日期的格式,如下所示:

ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH:MI:SS PM';

这样,您的原始查询将以您之后的格式输出日期,而不使用TO_CHAR。要恢复到通常的默认格式,只需执行以下操作:

ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-RR';

答案 1 :(得分:8)

这是oracle日期格式,它被设置为您实例的默认格式。

您应该正确指定格式以查看更多或更少......如下所示:

select to_char( datevisit, 'dd-mon-yy hh24:mi:ss' ) from visit

答案 2 :(得分:2)

您依赖于隐式日期转换,它使用您的(依赖于会话,但可能继承自数据库默认设置)NLS_DATE_FORMAT设置 - 在这种情况下似乎是DD-MON-RR。< / p>

您可以使用to_char指定格式,例如:

select to_char(actualarrivaltime, 'DD-MON-YYYY HH:M:SS PM') from ..

datetime format models are described in the documentation

一般来说,最好不要依赖implcit转换。即使你现在得到了你期望的东西,它们也可以是特定于会话的,所以另一个客户的另一个用户可能会看到不同的东西。这可能会导致失败,也可能只是看错了。始终使用to_dateto_charto_timestamp等指定日期和数字格式。

答案 3 :(得分:2)

Oracle内部遵循'DD-Mon-YY'格式存储在数据库中。所以它返回'DD-Mon-Y

如果您希望使用小时分和秒的日期格式。您可以在会话中更改NLS_DATE_FORMAT。

如果要查询该实例的正好演示目的。使用TO_char函数转换为所需的格式。

SELECT slotnum, TO_CHAR (datevisit, 'DD-MON-YY ') "DATEVISIT",
       TO_CHAR (actualarrivaltime, 'DD-MON-YY HH:MI:SS AM') "ACTUALARRIVALTIME"
  FROM visit

我希望上面的查询可以为您提供输出。

答案 4 :(得分:0)

select localtimestamp from dual;