如何将时间插入 DATE 类型?

How to insert time into a DATE type?

我使用 TO_DATE 函数插入了一个元组,但当我进行查询时结果是 '05/01/2015'。没有显示时间。有什么不对吗?

INSERT INTO course_section VALUES(1,'MWF',TO_DATE('10:00:00 A.M.','HH:MI:SS A.M.'));

如何解决?

就在那里。 DATE 列实际上是一个日期和时间,精确到秒。如果您不指定日期部分,则默认为当月的第一天。

显示日期的默认 Oracle 格式是 DD-MON-RR,即 天数/月短名称/世纪翻转的年份

要获取时间,请使用 TO_CHAR 函数指定自定义格式。要使用 24 小时制查看您的时间,请执行以下操作(其中 x 是您的日期列):

SELECT TO_CHAR(x, 'HH24:MI:SS') FROM course_section;

要使用 AM/PM 的 12 小时制查看您的时间,请执行以下操作:

SELECT TO_CHAR(x, 'HH:MI:SS AM') from course_selection;

或者您可以在格式字符串中使用PM代替AM;无论哪种方式,你都会得到相同的结果:

SELECT TO_CHAR(x, 'HH:MI:SS PM') FROM course_selection;

将 NLS_DATE_FORMAT 设置为您的程序或会话的规格

例如在SQL*Plus,添加到login.sql

更改会话集 NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';

对于 SQL 开发人员,在首选项 > 数据库 > NLS 中设置

在编写应用程序代码时,如果您想强制使用特定的日期格式,使用 TO_CHAR 是个不错的选择。