sqldeveloper输出count(*)的正确结果,而sqlplus结果为零



我在sqlplus和sqldeveloper中得到了不同的count(*)输出。数据库是Oracle 11G。

SQL开发人员

从表1中选择count(*),其中web_ck_d=to_char(sysdate-1,'DD-MON-YY');计数(*)1083171

Sqlplus

SQL> Select count(*) from table1 where web_ck_d = to_char(sysdate-1,'DD-MON-YY');
COUNT(*)
      0

该表在all_tables中具有NUM_ROWS-357238869、BLOCKS-14978755、PARTITIONED-YES。

不理解sqlplus生成0的原因。请帮忙。

当您使用自定义日期格式时,如果oracle觉得不合适,它将在会话中查找默认日期格式。

Sql开发人员有自己的会话,sqlplus也有自己的。Sql开发人员的日期格式在NLS日期参数中指定,您可以从: Tools > Preferences > Database > NLS中进行检查。

您可以使用以下查询在sqlplus中检查日期

select sysdate from dual;

您可以设置所需的日期格式如下:

alter session set NLS_TIMESTAMP_FORMAT='DD-MON-YYYY HH24:MI:SS.FF';

你可以在这里使用你想要的格式。

最新更新