【问题标题】:Inserting date&time, but only date is inserted插入日期时间,但只插入日期
【发布时间】:2021-03-22 23:02:01
【问题描述】:

我试图在表格中插入日期和时间,但最后只插入日期。 这是代码:

create table myDate(date_value Date PRIMARY KEY );
INSERT INTO myDate(date_value ) VALUES (to_date('14/09/2010 18:00','dd/mm/yyyy hh24:mi'));

而我的 myDate 表中只有 14/09/2010 库存。有什么问题(有没有办法在没有时间戳的情况下做到这一点)?

【问题讨论】:

  • 最有可能的是您用来选择数据的工具没有显示那个时间部分。另一种可能性是在插入时删除时间部分的触发器。您可以通过select to_char(date_value, 'yyyy-mm-dd hh24:mi:ss') from mydate;查看。

标签: sql oracle date time


【解决方案1】:

我认为值得注意的是,设置会话 NLS 参数的替代方法是显式使用 to_char 函数。我更喜欢 to_char,因为它让任何阅读代码的人都毫无疑问。对 NLS 的依赖可能是不确定的,因为它可以设置在不同的级别。此外,如果你没有显式使用 to_char,oracle 仍然会在后台调用它,使用 NLS_DATE_FORMAT 的控制设置。

SQL> -- create table
SQL> Create table mytest (dob date);

Table created.

Elapsed: 00:00:00.08
SQL> insert into mytest values (sysdate);

1 row created.

Elapsed: 00:00:00.03
SQL> commit;

Commit complete.

Elapsed: 00:00:00.00
SQL> select dob nls_default,
  2         to_char(dob,'dd-mm-yyyy') dob1,
  3         to_char(dob,'yyyy-mm-dd') dob2,
  4         to_char(dob,'dd-mm-yyyy hh24:mi:ss') dob3
  5  from mytest;

NLS_DEFAU DOB1       DOB2       DOB3
--------- ---------- ---------- -------------------
11-DEC-20 11-12-2020 2020-12-11 11-12-2020 11:45:31

1 row selected.

Elapsed: 00:00:00.03
SQL> drop table mytest purge;

Table dropped.

有关该主题的更多信息,请参阅this article

【讨论】:

    【解决方案2】:

    根据您使用的工具,很可能是显示问题。 你可能想尝试这样的事情

    alter session set nls_date_format = 'DD-MON-YYYY HH12:MI:SS PM';
    

    这将更改您的会话以显示带有完整时间戳的日期。 我使用 oracle sql 开发者https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html 如果我在编写查询时没有为会话设置日期,我可能会看到意外的日期格式。 如果您也遇到这种情况,请告诉我们。

    【讨论】:

    • 谢谢 Miguel。这是问题所在。我刚刚在我的代码中修改了您的解决方案:....alter session set nls_date_format = 'DD/MM/YYYY HH12:MI'; ...因为正是我想看到的。谢谢。
    • 我很高兴能够提供帮助。快乐编码:-)
    • 谢谢)你也。
    • @readJohn 您还可以检查 SQL Developer 中的 NLS 首选项设置为您想要的任何内容。或者,使用to_char(date_value,'YYYY-MM-DD HH24:MI:SS') 等将显示格式设置为查询的一部分。
    猜你喜欢
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 2013-05-19
    • 2021-03-13
    相关资源
    最近更新 更多