【问题标题】:How to change Oracle Insert Query Date Format to to_date in sqlc如何在sql中将Oracle插入查询日期格式更改为to_date
【发布时间】:2018-01-23 08:22:45
【问题描述】:

早安,

在 sqlcl 中,我想运行一个构建插入语句的查询。如:

SELECT /*insert*/* FROM TABLE;

但是每个日期值都返回为to_timestamp('date', 'format'),而我想得到to_date('date', 'format')

我需要设置什么才能让这件事发生?

谢谢!!

已编辑:

例如...我有两列 id 和 date 的表 datesaving。 如果我运行这个查询

SELECT /*insert*/ id,date FROM datesaving ;

我明白了

Insert into DATASAVING (ID, DATE) values (1,to_timestamp('2016-02-15 11:05:07','RRRR-MM-DD HH24:MI:SS'));

而我想得到这个

Insert into DATASAVING (ID, DATE) values (1,to_date('2016-02-15 11:05:07','RRRR-MM-DD HH24:MI:SS'));

我知道我可以更改 de nls_format,但我不知道如何更改它。

【问题讨论】:

  • 抱歉,这个不清楚。请解释您正在运行哪些命令并发布您得到的输出(整个事情或至少足以提供适当的上下文)。
  • 我编辑了我的问题,希望它能澄清。

标签: oracle sql-insert dateformatter sqlcl


【解决方案1】:

这是因为我们在 sqlcl 中返回的元数据告诉我们 DATE 列是时间戳,因此代码将其视为时间戳。但是,它会工作得很好。

SQL> create table test_insert(id number,dt date,ts timestamp);

Table TEST_INSERT created.

SQL> insert into test_insert values(1,sysdate,systimestamp);

1 row inserted.

SQL> set sqlformat insert
SQL> select * from test_insert;
REM INSERTING into TEST_INSERT
SET DEFINE OFF;
Insert into TEST_INSERT (ID,DT,TS) values (1,to_timestamp('02-FEB-18','DD-MON-RR HH.MI.SSXFF AM'),to_timestamp('02-FEB-18 01.47.57.017643000 PM','DD-MON-RR HH.MI.SSXFF AM'));

<<<copy pasted to run the output >>>

SQL> insert into TEST_INSERT (ID,DT,TS) values (1,to_timestamp('02-FEB-18','DD-MON-RR HH.MI.SSXFF AM'),to_timestamp('02-FEB-18 01.47.57.017643000 PM','DD-MON-RR HH.MI.SSXFF AM'));

1 row inserted.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2011-02-04
    • 2021-05-19
    • 2013-07-02
    • 2020-09-02
    • 2017-06-05
    • 1970-01-01
    相关资源
    最近更新 更多