更新时间:2022-11-13 21:12:01
QUERY = TABLE1,TABLE2:其中... TO_DATE('2015年8月1日','dd-mon-yyyy');"
QUERY=TABLE1,TABLE2:"where ... TO_DATE('01-AUG-2015','dd-mon-yyyy');"
在 QUERY 参数中
删除分号.
QUERY=TABLE1,TABLE2:"where TABLE1_STARTTIME >= TO_DATE('01-AUG-2015','dd-mon-yyyy')
and TABLE2_STARTIME >= TO_DATE('01-AUG-2015','dd-mon-yyyy')"
旁注:
与您的问题没有直接关系.但是请记住, TO_DATE 是 NLS依赖.您应该指定 NLS_DATE_LANGUAGE ,否则对于其他nls_date_language,查询可能会失败.
Not directly related to your issue. But remember TO_DATE is NLS dependent. You should specify the NLS_DATE_LANGUAGE, else your query might fail for a different nls_date_language.
例如,
SQL> alter session set nls_date_language='FRENCH';
Session altered.
SQL> SELECT TO_DATE('01-AUG-2015','dd-mon-yyyy') FROM DUAL;
SELECT TO_DATE('01-AUG-2015','dd-mon-yyyy') FROM DUAL
*
ERROR at line 1:
ORA-01843: not a valid month
SQL> SELECT TO_DATE('01-AUG-2015','dd-mon-yyyy', 'nls_date_language=ENGLISH') FROM DUAL;
TO_DATE('01
-----------
01-AO█T -15
当您没有任何时间部分时,我希望使用 ANSI日期文字.它是与NLS无关.它使用固定格式 YYYY-MM-DD .
I would prefer using ANSI Date literal, when you do not have any time portion. It is NLS independent. It uses a fixed format YYYY-MM-DD.
例如,
SQL> alter session set nls_date_language='FRENCH';
Session altered.
SQL> SELECT DATE '2015-08-01' FROM DUAL;
DATE'2015-0
-----------
01-AO█T -15
SQL> alter session set nls_date_language='AMERICAN';
Session altered.
SQL> SELECT DATE '2015-08-01' FROM DUAL;
DATE'2015
---------
01-AUG-15