【问题标题】:How to insert time into a DATE type?如何将时间插入 DATE 类型?
【发布时间】:2015-08-13 00:18:29
【问题描述】:

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

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

如何解决?

【问题讨论】:

    标签: sql oracle oracle-sqldeveloper oracle-apex


    【解决方案1】:

    它就在那里。 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;
    

    【讨论】:

      【解决方案2】:

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

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

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

      对于 SQL Developer,在 Preferences > Database > NLS 中设置

      在编写应用程序时,如果您想强制使用特定的日期格式,则使用 TO_CHAR 是很好的选择。

      【讨论】:

        猜你喜欢
        • 2014-06-30
        • 1970-01-01
        • 2015-11-15
        • 1970-01-01
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        • 2019-07-13
        • 2014-08-12
        相关资源
        最近更新 更多