【问题标题】:Store time while inserting data into oracle table将数据插入oracle表时存储时间
【发布时间】:2018-01-05 09:35:19
【问题描述】:

在我的一个专栏中,我也想在以下条件下存储时间。这是下面的查询。

APPROVED_DATE = CASE WHEN PAPPROVED_BY IS NULL THEN NULL ELSE SYSDATE END,

如何在SYSDATE这里添加时间部分

【问题讨论】:

  • Sysdate 中已经有时间组件。它只是您可以使用 to_char 进行的表示
  • @XING: 但绑定时没有显示时间部分。你能更新to_char的代码并显示
  • not showing the time part while binding .. 你在哪里绑定。您必须按照您尝试的内容和方式发布完整的场景
  • @XING:在我的前端部分,它在表中存储为05-01-18
  • 因此,当您将 SYSDATE 替换为 to_char(sysdate, 'dd.mm.yyyy hh24:mi:ss') 时,它不起作用。是你说的吗?

标签: oracle sysdate


【解决方案1】:

它已经在那里了;如果您没有看到它,那是因为您的 NLS 设置。这是您可能会做的一个示例:ALTER SESSION 或使用 TO_CHAR:

SQL> create table test (approved_Date date);

Table created.

SQL> insert into test values (sysdate);

1 row created.

SQL> select * from test;

APPROVED
--------
05.01.18

SQL> select to_char(approved_Date, 'dd.mm.yyyy hh24:mi:ss') from test;

TO_CHAR(APPROVED_DA
-------------------
05.01.2018 10:37:38

SQL> alter session set nls_date_format = 'dd-mm-yyyy hh:mi:ss am';

Session altered.

SQL> select * from test;

APPROVED_DATE
----------------------
05-01-2018 10:37:38 AM

SQL>

【讨论】:

  • 你可以添加我的case 条件。我试过了,但它不起作用
  • 您不必在 CASE 语句中添加任何内容;它工作正常。您的问题在于 DISPLAYING 该值,我向您展示了如何正确执行此操作。最常用的方法是应用带有所需格式掩码的 TO_CHAR 函数。
【解决方案2】:

您的 CASE 代码运行良好。您只需要更改显示设置,因为 sysdate 中已经有时间元素。

如果您使用的是 PL/SQL,请转到

工具>首选项>日期/时间

并根据您的要求更改格式。

访问此字段时使用to_char(sysdate , 'DD/MM/YYYY hh24:mi:ss')

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多