Oracle sql日期间隔

Oracle sql日期间隔,sql,oracle,date,intervals,calculated-columns,Sql,Oracle,Date,Intervals,Calculated Columns,请帮助我B是正确的吗? 或者C你最好的选择就是尝试一下 SQL> alter session set nls_date_format = 'dd_mm_yyyy'; Session altered. SQL> -- A SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '6' day 2 + interval '120' second, 'dd-mon-yyyy') as

请帮助我B是正确的吗?
或者C

你最好的选择就是尝试一下

SQL> alter session set nls_date_format = 'dd_mm_yyyy';

Session altered.

SQL> -- A
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '6' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
04-jan-2020

SQL> -- B
SQL> select to_char(to_date('29-10-2019') + interval '3' month + interval '7' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
05-feb-2020

SQL> -- C
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '4' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
02-jan-2020

SQL> -- D
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '6' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
04-jan-2020

SQL> -- E
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '5' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
03-jan-2020

SQL>


所以-是的,C是正确的。

您最好的选择是尝试它

SQL> alter session set nls_date_format = 'dd_mm_yyyy';

Session altered.

SQL> -- A
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '6' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
04-jan-2020

SQL> -- B
SQL> select to_char(to_date('29-10-2019') + interval '3' month + interval '7' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
05-feb-2020

SQL> -- C
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '4' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
02-jan-2020

SQL> -- D
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '6' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
04-jan-2020

SQL> -- E
SQL> select to_char(to_date('29-10-2019') + interval '2' month + interval '5' day
  2  + interval '120' second, 'dd-mon-yyyy') as datum from dual;

DATUM
-----------
03-jan-2020

SQL>


因此-是的,C是正确的。

无,所有查询在语法上无效,并将引发异常,如下所示:

  • 它们有反勾号而不是单引号
  • INTEVAL'120秒中应该有第二个引号
    INTERVAL
    拼写错误;及
  • TO_CHAR
    函数的格式模型周围,引号缺失,前面分隔参数的逗号也缺失

如果忽略(许多)语法错误,则从
2019-10-29
开始,并希望进入
2020-01-02
;两个月(即2019-12-29年的时间)和4天的时间相差。秒数无关紧要,因为由于
NLS
设置,秒数不显示。这将给出答案
C

无,所有查询在语法上无效,并将引发异常,如:

  • 它们有反勾号而不是单引号
  • INTEVAL'120秒中应该有第二个引号
    INTERVAL
    拼写错误;及
  • TO_CHAR
    函数的格式模型周围,引号缺失,前面分隔参数的逗号也缺失

如果忽略(许多)语法错误,则从
2019-10-29
开始,并希望进入
2020-01-02
;两个月(即2019-12-29年的时间)和4天的时间相差。秒数无关紧要,因为由于
NLS
设置,秒数不显示。这将给出答案
C

您是否尝试在DB上运行它们?是否尝试在DB上运行它们?