首页 > 解决方案 > 插入日期和时间,但只插入日期

问题描述

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

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。有什么问题(有没有办法在没有时间戳的情况下做到这一点)?

标签: sqloracledatetime

解决方案


我认为值得注意的是,设置会话 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.

有关该主题的更多信息,请参阅这篇文章


推荐阅读